Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
Action recommandée
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 :
- Attachez un JsonIgnoreAttribute à la propriété contenant le IAsyncEnumerable<T>.
- Définissez une fabrique de convertisseur personnalisée qui sérialise les instances en tant qu’objets JSON vides IAsyncEnumerable<T> .