System.Text.Json IAsyncEnumerable serialisatie
System.Text.Json ondersteunt nu serialiseren en deserialiseren van IAsyncEnumerable<T> exemplaren.
Vorig gedrag
In eerdere versies System.Text.Json worden geserialiseerde IAsyncEnumerable<T> exemplaren als lege JSON-objecten ({}
). Deserialisatie is mislukt met een JsonException.
Nieuw gedrag
Asynchrone serialisatiemethoden inventariseren nu alle IAsyncEnumerable<T> exemplaren in een objectgrafiek en serialiseren ze vervolgens als JSON-matrices. Synchrone serialisatiemethoden bieden geen ondersteuning voor IAsyncEnumerable<T> serialisatie en gooien van een NotSupportedException.
Versie geïntroduceerd
.NET 6
Type wijziging die fouten veroorzaken
Deze wijziging kan van invloed zijn op de broncompatibiliteit. Als u naar .NET 6 retarget, krijgt u geen compilatiefouten, maar kunnen er verschillen optreden in runtime-serialisatiegedrag.
Reden voor wijziging
Deze wijziging is geïntroduceerd om ondersteuning toe te voegen voor streamingantwoorden IAsyncEnumerable<T> in ASP.NET Core MVC.
Aanbevolen actie
Controleer of uw serialisatiemodellen typen bevatten die implementeren IAsyncEnumerable<T> en bepalen of het verzenden van de opsomming in de JSON-uitvoer wenselijk is. U kunt serialisatie op een van de volgende manieren uitschakelen IAsyncEnumerable<T> :
- Koppel een JsonIgnoreAttribute aan de eigenschap met de IAsyncEnumerable<T>.
- Definieer een aangepaste conversiefactory die exemplaren serialiseert IAsyncEnumerable<T> als lege JSON-objecten.