Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Acción recomendada
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:
- Adjunte un JsonIgnoreAttribute a la propiedad que contiene el IAsyncEnumerable<T>.
- Defina un generador de convertidores personalizado que serialice las instancias como objetos JSON vacíos IAsyncEnumerable<T> .