Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En mindre icke-bakåtkompatibel ändring introducerades i .NET 6 när det gäller attributet JsonNumberHandlingAttribute . Om du använder attributet för en egenskap som är en samling icke-talvärden och försöker serialisera eller deserialisera egenskapen genereras en InvalidOperationException . Attributet är endast giltigt för egenskaper som är samlingar av nummertyper, till exempel:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
Tidigare beteende
Även om den ignorerades under serialiseringen kan JsonNumberHandlingAttribute den tillämpas på egenskaper som var samlingar av icke-nummertyper. Till exempel:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
Nytt beteende
Från och med .NET 6, om du applicerar JsonNumberHandlingAttribute på en egenskap som är en samling av icke-talvärden och försöker serialisera eller deserialisera egenskapen, genereras en InvalidOperationException.
Version lanserad
.NET 6
Typ av brytande ändring
Den här ändringen kan påverka binär kompatibilitet.
Orsak till ändring
Den här ändringen var en bieffekt av en prestandaoptimering för funktionen för nummerhantering.
Rekommenderad åtgärd
JsonNumberHandlingAttribute Ta bort attributet från inkompatibla samlingsegenskaper.
Berörda API:er
System.Text.Json.JsonSerializer Alla serialiserings- och deserialiseringsmetoder.