Freigeben über


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 enumerieren jetzt alle IAsyncEnumerable<T> Instanzen in einem Objektdiagramm und serialisieren sie dann als JSON-Arrays. Synchrone Serialisierungsmethoden unterstützen die IAsyncEnumerable<T>-Serialisierung nicht und lösen eine NotSupportedException aus.

Eingeführte Version

.NET 6

Art der einschneidenden Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken. Wenn Sie auf .NET 6 umsteigen, erhalten Sie keine Kompilierzeitfehler, es treten jedoch möglicherweise Unterschiede beim Verhalten der Laufzeit serialisierung auf.

Grund für Ä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 es wünschenswert ist, die Enumeration in der JSON-Ausgabe auszugeben. Sie können die Serialisierung auf eine der folgenden Arten deaktivieren IAsyncEnumerable<T> :

Betroffene APIs

Siehe auch