Serializzazione IAsyncEnumerable System.Text.Json

System.Text.Json ora supporta la serializzazione e la deserializzazione delle istanze IAsyncEnumerable<T>.

Comportamento precedente

Nelle versioni precedenti, System.Text.Json serializzava le istanze IAsyncEnumerable<T> come oggetti JSON vuoti ({}). Deserializzazione non riuscita con un JsonException.

Nuovo comportamento

I metodi di serializzazione asincroni ora enumerano tutte le istanze di IAsyncEnumerable<T> in un grafico di oggetti e quindi le serializzano come matrici JSON. I metodi di serializzazione sincrona non supportano la serializzazione IAsyncEnumerable<T> e generano un'eccezione NotSupportedException.

Versione di introduzione

.NET 6

Tipo di modifica che causa un'interruzione

Questa modifica può influire sulla compatibilità dell'origine. Se si ripristina .NET 6, non si otterranno errori in fase di compilazione, ma potrebbero verificarsi differenze di comportamento della serializzazione in fase di esecuzione.

Motivo della modifica

Questa modifica è stata introdotta per aggiungere il supporto alle risposte di streaming IAsyncEnumerable<T> in MVC ASP.NET Core.

Controlla se i tuoi modelli di serializzazione contengono tipi che implementano IAsyncEnumerable<T> e determina se generare l'enumerazione nell'output JSON è auspicabile. Puoi disabilitare la serializzazione IAsyncEnumerable<T> in uno dei modi seguenti:

API interessate

Vedi anche