Sérialisation de System.Text.Json IAsyncEnumerable

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

Comportement précédent

Dans les versions précédentes, System.Text.Json les instances sérialisées 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 les instances IAsyncEnumerable<T> 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

Ce changement peut affecter la compatibilité source. Si vous reciblez vers .NET 6, vous n’obtiendrez pas d’erreurs de compilation, mais vous pouvez rencontrer des différences de comportement de sérialisation au moment de l’exécution.

Raison du changement

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éterminez si l’émission de l’énumération dans la sortie JSON est souhaitable. Vous pouvez désactiver la sérialisation IAsyncEnumerable<T> de l'une des façons suivantes :

API affectées

Voir aussi