集合屬性上的 JsonNumberHandlingAttribute

在 .NET 6 中引進了與 JsonNumberHandlingAttribute 屬性相關的次要中斷性變更。 如果您將屬性套用於非數值的集合,並嘗試序列化或還原序列化屬性的屬性,則會擲回 InvalidOperationException。 屬性只適用於屬於數字型別集合的屬性,例如:

[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }

先前的行為

雖然在序列化期間忽略,JsonNumberHandlingAttribute 可以套用於非數字型別集合的屬性。 例如:

[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }

新的行為

從 .NET 6 開始,如果您將 JsonNumberHandlingAttribute 套用於非數值的集合,並嘗試序列化或還原序列化屬性的屬性,則會擲回 InvalidOperationException

導入的版本

.NET 6

中斷性變更的類型

這項變更會影響二進位相容性

變更原因

這項變更是數字處理功能的效能最佳化所產生的副作用。

從不相容的集合屬性中移除 JsonNumberHandlingAttribute 屬性。

受影響的 API

所有 System.Text.Json.JsonSerializer 序列化和還原序列化方法。