System.Text.Json IAsyncEnumerable szerializálás
System.Text.Json mostantól támogatja a példányok szerializálását és deszerializálását IAsyncEnumerable<T> .
Előző viselkedés
A korábbi verziókban a System.Text.Json szerializált IAsyncEnumerable<T> példányok üres JSON-objektumként ({}
). A deszerializálás sikertelen volt egy JsonException.
Új viselkedés
Az aszinkron szerializálási módszerek mostantól számbavételt IAsyncEnumerable<T> hajtanak végre az objektumgráfban lévő példányok számbavételén, majd JSON-tömbökként szerializálják őket. A szinkron szerializációs metódusok nem támogatják IAsyncEnumerable<T> a szerializálást, és nem adnak egy NotSupportedException.
Bevezetett verzió
.NET 6
A kompatibilitástörő változás típusa
Ez a módosítás hatással lehet a forráskompatibilitásra. Ha újrakezdi a .NET 6-ot, nem fog fordítási időt eredményezni, de futásidejű szerializálási viselkedésbeli különbségek léphetnek fel.
A változás oka
Ez a módosítás a streamelési IAsyncEnumerable<T> válaszok ASP.NET Core MVC-ben való támogatásához lett bevezetve.
Javasolt művelet
Ellenőrizze, hogy a szerializálási modellek olyan típusokat tartalmaznak-e, amelyek implementálják IAsyncEnumerable<T> , és meghatározzák, hogy a számbavétel a JSON-kimenetben kívánatos-e. A szerializálást az alábbi módok egyikével tilthatja le IAsyncEnumerable<T> :
- Csatoljon egy JsonIgnoreAttribute elemet a tulajdonsághoz, amely tartalmazza a IAsyncEnumerable<T>.
- Definiáljon egy egyéni konverter-előállítót , amely üres JSON-objektumként szerializálja IAsyncEnumerable<T> a példányokat.
Érintett API-k
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: