Partager via


Sérialisation de System.Text.Json IAsyncEnumerable

System.Text.Json prend désormais en charge la sérialisation et la désérialisation des IAsyncEnumerable<T> instances.

Comportement précédent

Dans les versions précédentes, System.Text.Json sérialisait les instances IAsyncEnumerable<T> en tant qu'objets JSON vides ({}). Échec de la désérialisation avec une JsonException.

Nouveau comportement

Les méthodes de sérialisation asynchrone énumèrent désormais toutes les IAsyncEnumerable<T> instances d’un graphe d’objets, puis les sérialisent en tant que tableaux JSON. Les méthodes de sérialisations synchrones ne prennent pas en charge la sérialisation IAsyncEnumerable<T> et lèvent une NotSupportedException.

Version introduite

.NET 6

Type de changement cassant

Cette modification peut affecter la compatibilité source . Si vous passez à .NET 6, vous n'obtiendrez aucune erreur au moment de la compilation, mais vous pourriez rencontrer des différences de comportements de sérialisation lors de l'exécution.

Raison de la modification

Ce changement a été introduit pour ajouter le support des réponses de diffusion en continu IAsyncEnumerable<T> dans ASP.NET Core MVC.

Vérifiez si vos modèles de sérialisation contiennent des types qui implémentent IAsyncEnumerable<T> et déterminent si l’émission de l’énumération dans la sortie JSON est souhaitable. Vous pouvez désactiver IAsyncEnumerable<T> la sérialisation de l’une des façons suivantes :

API affectées

Voir aussi