Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er is een brekende wijziging geïntroduceerd in .NET 6 met betrekking tot het JsonNumberHandlingAttribute kenmerk. Als u het kenmerk toepast op een eigenschap die een verzameling niet-numerieke waarden is en probeert de eigenschap te serialiseren of deserialiseren, wordt er een InvalidOperationException gegenereerd. Het kenmerk is alleen geldig voor eigenschappen die verzamelingen van getaltypen zijn, bijvoorbeeld:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
Vorig gedrag
Hoewel deze tijdens de serialisatie werd genegeerd, JsonNumberHandlingAttribute kan deze worden toegepast op eigenschappen die verzamelingen van niet-numerieke typen zijn. Voorbeeld:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
Nieuw gedrag
Vanaf .NET 6, als u JsonNumberHandlingAttribute toepast op een eigenschap die een verzameling van niet-numerieke waarden is en probeert de eigenschap te serialiseren of deserialiseren, wordt er een InvalidOperationException uitgelokt.
Geïntroduceerde versie
.NET 6
Type van brekende verandering
Deze wijziging kan van invloed zijn op binaire compatibiliteit.
Reden voor wijziging
Deze wijziging was een neveneffect van een prestatieoptimalisatie voor de functie voor het verwerken van getallen.
Aanbevolen actie
Verwijder het JsonNumberHandlingAttribute kenmerk uit niet-compatibele verzamelingseigenschappen.
Betreffende API's
System.Text.Json.JsonSerializer Alle serialisatie- en deserialisatiemethoden.