Aracılığıyla paylaş


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.

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.