Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Nas versões anteriores, quando a configuração estava associada a um tipo de dicionário, todas as chaves sem valores correspondentes na configuração eram ignoradas e não eram adicionadas ao dicionário. O comportamento foi alterado de modo que essas chaves não sejam mais ignoradas, mas, em vez disso, criadas automaticamente com seus valores padrão. Essa alteração garante que todas as chaves listadas na configuração estejam presentes no dicionário.
Versão introduzida
.NET 8 Versão Prévia 5
Comportamento anterior
Anteriormente, as chaves vazias na configuração eram ignoradas quando associadas a um tipo de dicionário. Considere a cadeia de caracteres de configuração a seguir e o código de associação.
var json = @"{
""Queues"": {
""q1"": {
""V"": 1
},
""q2"": {
""V"": 2
},
""q3"": {
}
}
}";
public class Q
{
public Dictionary<string, QueueValue> Queues { get; set; } = new();
}
public class QueueValue
{
public int V { get; set; }
}
var configuration = new ConfigurationBuilder()
.AddJsonStream(StringToStream(json))
.Build();
Q options = new Q();
configuration.Bind(options);
foreach (var kvp in options.Queues)
{
Console.WriteLine($"{kvp.Key}: {kvp.Value.V}");
}
Anteriormente, você veria a seguinte saída (observe que a chave q3 está ausente):
q1: 1
q2: 2
Novo comportamento
A partir do .NET 8, chaves de configuração vazias são adicionadas ao dicionário com seu valor padrão durante a associação de configuração.
Considere o código da seção de comportamento anterior , que agora gera o seguinte texto mostrando que q3 foi adicionado ao dicionário com seu valor padrão:
q1: 1
q2: 2
q3: 0
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
Essa alteração solicitada pelo usuário garante que todas as chaves listadas na configuração estejam presentes no dicionário. Ter todas as chaves presentes simplifica o processo e evita possíveis problemas com chaves ausentes.
Ação recomendada
Verifique e adapte a lógica do aplicativo para acomodar a presença das entradas de dicionário recém-criadas com valores vazios. Se o novo comportamento for indesejável, remova as entradas de valor vazio da configuração. Ao eliminar essas entradas, nenhuma entrada de dicionário com valores vazios será adicionada durante o processo de associação.