System.Text.Json IAsyncEnumerable serileştirme
System.Text.Json artık örnekleri seri hale getirme ve seri durumdan IAsyncEnumerable<T> çıkarma desteğine sahip.
Önceki davranış
Önceki sürümlerde, System.Text.Json serileştirilmiş IAsyncEnumerable<T> örnekler boş JSON nesneleri ({}
olarak). Seri durumdan çıkarma işlemi ile JsonExceptionbaşarısız oldu.
Yeni davranış
Zaman uyumsuz serileştirme yöntemleri artık bir nesne grafiğindeki tüm IAsyncEnumerable<T> örnekleri numaralandırır ve sonra bunları JSON dizileri olarak seri hale getirir. Zaman uyumlu serileştirme yöntemleri serileştirmeyi desteklemez IAsyncEnumerable<T> ve bir NotSupportedExceptionoluşturur.
Sürüm kullanıma sunulmuştur
.NET 6
Hataya neden olan değişikliğin türü
Bu değişiklik kaynak uyumluluğunu etkileyebilir. .NET 6'ya yeniden hedeflediyseniz, derleme zamanı hataları almazsınız, ancak çalışma zamanı serileştirme davranışı farklılıklarıyla karşılaşabilirsiniz.
Değişiklik nedeni
Bu değişiklik, ASP.NET Core MVC'de akış IAsyncEnumerable<T> yanıtları için destek eklemek için sunulmuştur.
Önerilen eylem
Serileştirme modellerinizin uygulayan IAsyncEnumerable<T> türler içerip içermediğini denetleyin ve JSON çıkışında numaralandırmanın yayılması istenip istenmediğini belirleyin. Serileştirmeyi aşağıdaki yollardan biriyle devre dışı bırakabilirsiniz IAsyncEnumerable<T> :
- öğesini içeren özelliğine IAsyncEnumerable<T>bir JsonIgnoreAttribute ekleyin.
- Örnekleri boş JSON nesneleri olarak seri hale IAsyncEnumerable<T> getiren özel bir dönüştürücü fabrikası tanımlayın.