1

无法反序列化数据协定类型“DTO.AccountData”,因为成员“属性”不是公共的。将成员设为公开将修复此错误。或者,您可以将其设为内部,并在程序集上使用 InternalsVisibleToAttribute 属性以启用内部成员的序列化 - 有关更多详细信息,请参阅文档。请注意,这样做有一定的安全隐患。

在我的班级中,所有成员变量都是公共的

public class AccountData
{

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

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

}

更新
我尝试了 [DataContract] 和 [DataMember] 属性,但不起作用。

4

1 回答 1

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

于 2013-07-17T05:18:32.683 回答