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 instâncias serializadas IAsyncEnumerable<T> como objetos JSON vazios ({}). A desserialização falhou com um JsonExceptionarquivo .

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 NotSupportedExceptionarquivo .

Versão introduzida

.NET 6

Tipo de mudança de rutura

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

Razão para a alteração

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

Consulte também