Compartilhar via


Serialização IAsyncEnumerable do System.Text.Json

System.Text.Json agora dá suporte à serialização e desserialização de IAsyncEnumerable<T> instâncias.

Comportamento anterior

Em versões anteriores, System.Text.Json serializou instâncias IAsyncEnumerable<T> como objetos JSON vazios ({}). Falha na desserialização com um JsonException.

Novo comportamento

Os métodos de serialização assíncrona agora enumeram todas IAsyncEnumerable<T> as instâncias em um grafo de objeto e, em seguida, serializam-nas como matrizes JSON. Métodos de serializações síncronas não dão suporte à serialização IAsyncEnumerable<T> e geram um NotSupportedException.

Versão introduzida

.NET 6

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade da origem. Se você redirecionar para o .NET 6, não receberá erros de tempo de compilação, mas poderá encontrar diferenças de comportamento de serialização em tempo de execução.

Motivo da alteração

Essa alteração foi introduzida para adicionar suporte para respostas de streaming IAsyncEnumerable<T> em ASP.NET Core MVC.

Verifique se os modelos de serialização contêm tipos que implementam IAsyncEnumerable<T> e determinam se a enumeração na saída JSON é desejável. Você pode desabilitar IAsyncEnumerable<T> a serialização de uma das seguintes maneiras:

APIs afetadas

Consulte também