System.Text.Json unterstützt IAsyncEnumerable-Serialisierung

System.Text.Json unterstützt jetzt die Serialisierung und Deserialisierung von IAsyncEnumerable<T>-Instanzen.

Vorheriges Verhalten

In früheren Versionen hat System.Text.JsonIAsyncEnumerable<T>-Instanzen als leere JSON-Objekte ({}) serialisiert. Die Deserialisierung schlug mit einer JsonException fehl.

Neues Verhalten

Asynchrone Serialisierungsmethoden zählen jetzt alle IAsyncEnumerable<T>-Instanzen in einem Objektgraphen auf und serialisieren sie dann als JSON-Arrays. Synchrone Serialisierungsmethoden unterstützen keine IAsyncEnumerable<T>-Serialisierung und lösen eine NotSupportedException aus.

Eingeführt in Version

.NET 6

Typ des Breaking Changes

Diese Änderung kann sich auf die Quellkompatibilität auswirken. Wenn Sie die Zielversion auf .NET 6 umstellen, erhalten Sie keine Kompilierzeitfehler, es können jedoch Unterschiede beim Serialisierungsverhalten zur Laufzeit auftreten.

Grund für die Änderung

Diese Änderung wurde eingeführt, um Unterstützung für das Streamen von IAsyncEnumerable<T>-Antworten in ASP.NET Core MVC hinzuzufügen.

Überprüfen Sie, ob Ihre Serialisierungsmodelle Typen enthalten, die IAsyncEnumerable<T> implementieren, und bestimmen Sie, ob die Ausgabe der Enumeration in der JSON-Ausgabe wünschenswert ist. IAsyncEnumerable<T>-Serialisierung können Sie auf eine der folgenden Arten deaktivieren:

Betroffene APIs

Siehe auch