集合屬性上的 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 序列化和還原序列化方法。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應