Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Ação recomendada
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:
- Anexe a JsonIgnoreAttribute à propriedade que contém o IAsyncEnumerable<T>.
- Defina uma fábrica de conversores personalizada que serialize IAsyncEnumerable<T> instâncias como objetos JSON vazios.