Partilhar via


Serialização System.Text.Json IAsyncEnumerable

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

Comportamento anterior

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

Novo comportamento

Os métodos de serialização assíncrona agora enumeram quaisquer IAsyncEnumerable<T> instâncias em um gráfico de objeto e, em seguida, serializam-nas como matrizes JSON. Os métodos de serialização síncrona não oferecem suporte IAsyncEnumerable<T> serialização e lançam um NotSupportedException.

Versão introduzida

.NET 6

Tipo de mudança disruptiva

Essa alteração pode afetar compatibilidade da fonte. Se redirecionar para .NET 6, não terá erros em tempo de compilação, mas pode encontrar diferenças no comportamento de serialização em tempo de execução.

Motivo da mudança

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

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

APIs afetadas

Ver também