Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Bezug auf das JsonNumberHandlingAttribute-Attribut wurde in .NET 6 eine geringfügige, durchbrechende Änderung eingeführt. Wenn Sie das Attribut auf eine Eigenschaft anwenden, die eine Auflistung von Nicht-Zahlenwerten ist, und versuchen, die Eigenschaft zu serialisieren oder deserialisieren, wird ein InvalidOperationException Fehler ausgelöst. Das Attribut ist nur für Eigenschaften gültig, die Sammlungen von Zahlentypen sind, z. B.:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
Vorheriges Verhalten
Obwohl er während der Serialisierung ignoriert wurde, könnte JsonNumberHandlingAttribute auf Eigenschaften angewendet werden, die Sammlungen von Nicht-Zahlentypen sind. Beispiel:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
Neues Verhalten
Ab .NET 6 gilt: Wenn Sie JsonNumberHandlingAttribute auf eine Eigenschaft anwenden, bei der es sich um eine Auflistung von Nicht-Zahlenwerten handelt, und versuchen, die Eigenschaft zu serialisieren oder zu deserialisieren, wird eine InvalidOperationException ausgelöst.
Eingeführte Version
.NET 6
Art der einschneidenden Änderung
Diese Änderung kann sich auf die Binäre Kompatibilität auswirken.
Grund für Änderung
Diese Änderung war ein Nebeneffekt einer Leistungsoptimierung für das Zahlenverarbeitungsfeature.
Empfohlene Aktion
Entfernen Sie das JsonNumberHandlingAttribute Attribut aus inkompatiblen Auflistungseigenschaften.
Betroffene APIs
System.Text.Json.JsonSerializer Alle Serialisierungs- und Deserialisierungsmethoden.