Sdílet prostřednictvím


System.Text.Json IAsyncEnumerable serializace

System.Text.Json nyní podporuje serializaci a deserializaci IAsyncEnumerable<T> instancí.

Předchozí chování

V předchozích verzích System.Text.Json serializované IAsyncEnumerable<T> instance jako prázdné objekty JSON ({}). Deserializace selhala s chybou JsonException.

Nové chování

Asynchronní metody serializace nyní vyčíslují všechny IAsyncEnumerable<T> instance v grafu objektu a pak je serializují jako pole JSON. Synchronní serializace metody nepodporují IAsyncEnumerable<T> serializaci a vyvolat NotSupportedException.

Zavedená verze

.NET 6

Typ zásadní změny

Tato změna může mít vliv na kompatibilitu zdroje. Pokud retarget na .NET 6, nezobrazí se žádné chyby v době kompilace, ale můžete zaznamenat rozdíly chování serializace za běhu.

Důvod změny

Tato změna byla zavedena, aby se v ASP.NET Core MVC přidala podpora pro odpovědi na streamování IAsyncEnumerable<T> .

Zkontrolujte, jestli modely serializace obsahují typy, které implementují IAsyncEnumerable<T> , a zjistěte, jestli je žádoucí vygenerovat výčet ve výstupu JSON. Serializaci můžete zakázat IAsyncEnumerable<T> jedním z následujících způsobů:

Ovlivněná rozhraní API

Viz také