Dot-Net

DataContractJsonSerializer 什麼時候包含類型資訊?

  • February 11, 2014

我注意到使用 DataContractJsonSerializer 序列化的 JSON 字元串有時會包含以下形式的類型資訊

{"__type":"MyClass:#MyNamespace", ... }

根據我的觀察,它似乎只在序列化基類型但傳遞已知子類型時才這樣做,這是有道理的,但我還沒有找到任何官方文件來確認這一點,或者確實強制序列化程序始終顯示每當遇到自定義類型時都會出現這種行為。

誰能確認我的觀察是否正確?更好的是,如果您知道一種方法來指示序列化程序始終序列化自定義類型的類型資訊,如果這可能的話?

謝謝,

實際上,您可以強制序列化程序始終一致地發出 __type 資訊。

如果您使用的是獨立的序列化程序,請使用constructor overload帶有“alwaysEmitTypeInformation”參數的。傳入真實。

如果您使用 DataContractJsonSerializerOperationBehavior,請將該屬性上的相同屬性設置為 true。我相信你也可以通過配置來做到這一點。

最後,請參閱http://msdn.microsoft.com/en-us/library/bb412170.aspx上的“何時發出類型提示”部分以獲得更詳細的說明。

希望這可以幫助!

引用自:https://stackoverflow.com/questions/4887485