Compartilhar via


Serialização IAsyncEnumerable do System.Text.Json

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

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 as instâncias IAsyncEnumerable<T> 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 alteração interruptiva

Essa alteração pode afetar a compatibilidade da origem. Se você redirecionar ao .NET 6, não receberá erros em 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> no MVC do ASP.NET Core.

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 a serialização IAsyncEnumerable<T> de uma das seguintes maneiras:

APIs afetadas

Confira também