Condividi tramite


Serializzazione di IAsyncEnumerable con System.Text.Json

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

Comportamento precedente

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

Nuovo comportamento

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

Versione introdotta

.NET 6

Tipo di cambiamento che interrompe la compatibilità

Questa modifica può influire sulla compatibilità del codice sorgente . Se si reindirizza a .NET 6, non verranno visualizzati errori in fase di compilazione, ma potrebbero verificarsi differenze di comportamento della serializzazione durante l'esecuzione.

Motivo della modifica

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

Controllare se i modelli di serializzazione contengono tipi che implementano IAsyncEnumerable<T> e determinano se generare l'enumerazione nell'output JSON è consigliabile. È possibile disabilitare IAsyncEnumerable<T> la serializzazione in uno dei modi seguenti:

Le API interessate

Vedere anche