System.Text.Json IAsyncEnumerable serialisering
System.Text.Json stöder nu serialisering och deserialisering av IAsyncEnumerable<T> instanser.
Tidigare beteende
I tidigare versioner System.Text.Json serialiserade IAsyncEnumerable<T> instanser som tomma JSON-objekt ({}
). Deserialiseringen misslyckades med en JsonException.
Nytt beteende
Asynkrona serialiseringsmetoder räknar nu upp alla IAsyncEnumerable<T> instanser i ett objektdiagram och serialiserar dem sedan som JSON-matriser. Synkrona serialiseringsmetoder stöder IAsyncEnumerable<T> inte serialisering och genererar en NotSupportedException.
Version introducerad
.NET 6
Typ av icke-bakåtkompatibel ändring
Den här ändringen kan påverka källkompatibiliteten. Om du använder .NET 6 igen får du inga kompileringsfel, men du kan stöta på skillnader i körningsserialiseringsbeteende.
Orsak till ändringen
Den här ändringen introducerades för att lägga till stöd för strömningssvar IAsyncEnumerable<T> i ASP.NET Core MVC.
Rekommenderad åtgärd
Kontrollera om serialiseringsmodellerna innehåller typer som implementerar IAsyncEnumerable<T> och avgör om det är önskvärt att generera uppräkningen i JSON-utdata. Du kan inaktivera IAsyncEnumerable<T> serialisering på något av följande sätt:
- Koppla en JsonIgnoreAttribute till egenskapen som innehåller IAsyncEnumerable<T>.
- Definiera en anpassad konverterarfabrik som serialiserar IAsyncEnumerable<T> instanser som tomma JSON-objekt.