Koleksiyon özelliklerinde JsonNumberHandlingAttribute
Özniteliğiyle ilgili olarak .NET 6'da küçük bir hataya neden olan JsonNumberHandlingAttribute değişiklik yapıldı. Özniteliğini sayı olmayan değerler koleksiyonu olan bir özelliğe uygular ve özelliği seri hale getirmeyi veya seri durumdan kaldırmayı denerseniz, bir InvalidOperationException oluşturulur. özniteliği yalnızca sayı türü koleksiyonları olan özellikler için geçerlidir, örneğin:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
Önceki davranış
Serileştirme sırasında yoksayılmış olsa da, JsonNumberHandlingAttribute sayı olmayan tür koleksiyonları olan özelliklere uygulanabilir. Örneğin:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
Yeni davranış
.NET 6'dan başlayarak, sayı olmayan değerler koleksiyonu olan bir özelliğe uygulanır JsonNumberHandlingAttribute ve özelliği serileştirmeye veya seri durumdan kaldırmaya çalışırsanız, bir InvalidOperationException oluşturulur.
Sürüm kullanıma sunulmuştur
.NET 6
Hataya neden olan değişikliğin türü
Bu değişiklik ikili uyumluluğu etkileyebilir.
Değişiklik nedeni
Bu değişiklik, sayı işleme özelliği için performans iyileştirmesinin bir yan etkisiydi.
Önerilen eylem
JsonNumberHandlingAttribute Uyumsuz koleksiyon özelliklerinden özniteliğini kaldırın.
Etkilenen API’ler
System.Text.Json.JsonSerializer Tüm serileştirme ve seri durumdan çıkarma yöntemleri.