Serialización IAsyncEnumerable de System.Text.Json

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

Comportamiento anterior

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

Comportamiento nuevo

Los métodos de serialización asincrónicos enumeran ahora todas las instancias de IAsyncEnumerable<T> en 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 importante

Este cambio puede afectar a la compatibilidad de orígenes. Si vuelve a establecer como destino .NET 6, no recibirá errores en tiempo de compilación, pero puede encontrar diferencias en el comportamiento de serialización en tiempo de 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 determine si es conveniente emitir la enumeración en la salida JSON. Puede deshabilitar la serialización de IAsyncEnumerable<T> de una de las maneras siguientes:

API afectadas

Vea también