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.
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.
Empfohlene Aktion
Ü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> :
- Fügen Sie ein JsonIgnoreAttribute an die Eigenschaft an, die IAsyncEnumerable<T> enthält.
- Definieren Sie eine benutzerdefinierte Konverterfactory, die IAsyncEnumerable<T> Instanzen als leere JSON-Objekte serialisiert.