Compartir a través de


Serialización IAsyncEnumerable de System.Text.Json

System.Text.Json ahora admite la serialización y deserialización de IAsyncEnumerable<T> instancias.

Comportamiento anterior

En versiones anteriores, System.Text.Json serializaba las instancias IAsyncEnumerable<T> como objetos JSON vacíos ({}). La deserialización generaba un error con la excepción JsonException.

Nuevo comportamiento

Los métodos de serialización asincrónica ahora enumeran las IAsyncEnumerable<T> instancias de un gráfico de objetos y, a continuación, las serializan como matrices JSON. Los métodos de serialización sincrónicos no admiten la serialización de IAsyncEnumerable<T> e inician una excepción NotSupportedException.

Versión introducida

.NET 6

Tipo de cambio disruptivo

Este cambio puede afectar a la compatibilidad de orígenes. Si cambia a .NET 6, no obtendrá ningún error en tiempo de compilación, pero es posible que encuentre diferencias en el comportamiento de la serialización durante la ejecución.

Motivo del cambio

Este cambio se introdujo para agregar compatibilidad con las respuestas de streaming IAsyncEnumerable<T> en ASP.NET Core MVC.

Compruebe si los modelos de serialización contienen tipos que implementan IAsyncEnumerable<T> y determinan si es deseable emitir la enumeración en la salida JSON. Puede deshabilitar la IAsyncEnumerable<T> serialización de una de las maneras siguientes:

Las APIs afectadas

Consulte también