2013-03-26 67 views
1

數據契約類型'DTO.AccountData'無法反序列化,因爲成員'屬性'不公開。公開成員將修復此錯誤。或者,您可以將其設置爲內部,並在程序集中使用InternalsVisibleToAttribute屬性,以啓用內部成員的序列化 - 請參閱文檔以獲取更多詳細信息。請注意,這樣做有一定的安全隱患。屬性無法反序列化,因爲成員'屬性'不公開

在我的類中的所有成員變量都是公共

public class AccountData 
{ 

    public string mdn 
    { 
     get; 
     set; 
    } 
    ..... 
    //other public varibales 
    .....  

    public Dictionary<string, string> properties 
    { 
     get; 
     set; 
    } 

} 

更新
我試過[DataContract]和[DataMember]標註屬性,但不起作用。

+1

你重新編譯你的解決方案? – 2013-03-26 06:41:21

+0

從一開始它就是'public',是的我清理並重新編譯了項目 – 2013-03-26 06:44:16

+0

您是否嘗試用[DataMember]標記具有[DataContract]屬性及其可序列化成員的類? – 2013-03-26 06:46:24

回答

1

不幸的是DataContractJsonSerializer期待您的JSON數據作爲

{"properties":[{"Key":"Name","Value":"Valorie"},{"Key":"Month","Value":"May"},{"Key":"Year","Value":"2013"}]} 

我認爲使用Json.NET是一個好主意,解析JSON

欲瞭解更多,您可以檢查這個問題Parse dictionary from json windows phone

相關問題