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.
Uma alteração interruptiva secundária foi introduzida no .NET 6 em relação ao atributo JsonNumberHandlingAttribute. Se você aplicar o atributo a uma propriedade que é uma coleção de valores não numéricos e tentar serializar ou desserializar a propriedade, uma InvalidOperationException será gerada. O atributo só é válido para propriedades que são coleções de tipos de número, por exemplo:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
Comportamento anterior
Embora tenha sido ignorado durante a serialização, JsonNumberHandlingAttribute pode ser aplicado a propriedades que eram coleções de tipos não numéricos. Por exemplo:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
Novo comportamento
Do .NET 6 em diante, se você se aplicar JsonNumberHandlingAttribute a uma propriedade que é uma coleção de valores não numéricos e tentar serializar ou desserializar a propriedade, uma InvalidOperationException será gerada.
Versão introduzida
.NET 6
Tipo de mudança disruptiva
Essa alteração pode afetar a compatibilidade binária.
Motivo da alteração
Essa alteração foi um efeito colateral de uma otimização de desempenho para o recurso de manipulação de números.
Ação recomendada
Remova o JsonNumberHandlingAttribute atributo de propriedades de coleção incompatíveis.
APIs afetadas
Todos os métodos System.Text.Json.JsonSerializer de serialização e desserialização.