Asp.net-Mvc
使 JSON.NET 和 Serializable 屬性一起工作
我正在使用 JSON.NET,過去在 WEBAPI 對象反序列化過程中遇到了一些麻煩。在做了一些研究之後,我發現這個類被標記為 [Serializable]。當我刪除它時,反序列化就很好了。
可以在此處找到有關此的更多詳細資訊:
為什麼 Web API 不會反序列化,但 JSON.Net 會?
現在問題來了,我使用 binaryformatter 創建從這個對像類計算的雜湊值。但是 Binaryformatter 要求類必須被標記為 [Serializable]。
你能推薦我什麼方法讓這兩個東西同時工作嗎?
找到了解決方案:
首先,檢查您的 Newtonsoft.JSON 版本是否大於 4.5 或僅使用 NuGET 進行更新
根據版本說明,兩者可以從這個版本開始使用一些額外的註釋一起工作。
<http://james.newtonking.com/archive/2012/04/11/json-net-4-5-release-2-serializable-support-and-bug-fixes>
“現在,如果您正在序列化具有該屬性的類型並且不想要新行為,則可以使用 JsonObjectAttribute 在類型上覆蓋它”
[JsonObject] [Serializable] public class Foobar {現在可以使用 JSON.NET,在我的例子中,可以使用帶有 [Serializable] 屬性的 binaryformatter。