JsonNumberHandlingAttribute u vlastností kolekce
V .NET 6 byla zavedena menší změna způsobující chybu, pokud jde o JsonNumberHandlingAttribute atribut. Pokud použijete atribut na vlastnost, která je kolekce nečíslných hodnot a pokusíte se serializovat nebo deserializovat vlastnost, InvalidOperationException je vyvolána. Atribut je platný pouze pro vlastnosti, které jsou kolekcemi typů čísel, například:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
Předchozí chování
I když byl ignorován během serializace, JsonNumberHandlingAttribute lze použít u vlastností, které byly kolekcemi nečíslových typů. Příklad:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
Nové chování
Počínaje rozhraním .NET 6 platí pro vlastnost, JsonNumberHandlingAttribute která je kolekcí nečíslových hodnot a pokusíte se serializovat nebo deserializovat vlastnost, InvalidOperationException vyvolá se.
Zavedená verze
.NET 6
Typ zásadní změny
Tato změna může ovlivnit binární kompatibilitu.
Důvod změny
Tato změna byla vedlejším účinkem optimalizace výkonu pro funkci zpracování čísel.
Doporučená akce
JsonNumberHandlingAttribute Odeberte atribut z nekompatibilních vlastností kolekce.
Ovlivněná rozhraní API
System.Text.Json.JsonSerializer Všechny metody serializace a deserializace.