2013-12-17 49 views
0

我正在拔出我的頭髮。我正在通過可能的解決方案來解決我的其他問題here。我有這個類:如何序列化一個用Newtonsoft.JSON實現IDictionary的類?

public class PartViewDTO : IDictionary<string, object> 
{ 
    ... 
} 

它的構造與哪些字段應該代表的細節 - 名稱,零件號,價格,等等,等等

我試圖序列PartViewDTO作爲一個集合響應的web服務,但我不希望的

[ { "Key": "Key1", "Value": "Value1" }, ...] 

傳統詞典序列化相反,我想

{ "Key1": "Value1", ... } 

我試圖在應用JsonDictionaryAttribute這個類別中的幾種變化:

[Newtonsoft.Json.JsonDictionary(ItemTypeNameHandling=Newtonsoft.Json.TypeNameHandling.Objects)] 
public class PartViewDTO : IDictionary<string, object> 

但在運行時我得到一個異常拋出的是「PartViewDTO不是詞典」

底線 - PartViewDTO是字典,但我希望它像字典中的鍵序列化是類的屬性。我從Web服務返回了這些IEnumerable的PartialDTO>,所以我希望將一個屬性應用到類本身將告知JSON應該如何序列化。

我在做什麼錯?

回答

0

事實證明,JSON.NET做的很好,我想要的方式序列化字典。問題是它不能識別我的類型是字典。我最終爲PartViewDTO編寫了一個自定義轉換器,該轉換器完成了字典工作。

現在一切都好!

相關問題