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.
Berörda API:er
Se även
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för