【发布时间】:2011-11-19 02:25:21
【问题描述】:
我使用 DataContractJsonSerializer 在 Silverlight 4 中反序列化 json 数据。 Json 数据键名与我的类属性名不匹配;所以我想我必须使用 数据成员属性。所以我做了以下事情:
[DataContract]
public class Person : Model
{
[DataMember(Name = "id")]
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
[DataMember(Name = "name")]
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
}
现在反序列化失败了,因为我没有将 DataContractAttribute 应用到 Person 的基类 Model。要求很严格吗?此外,在我将 DataContractAttribute 应用于模型之后,反序列化再次失败,因为我将 DataMember 属性应用于私有字段,而不是公共属性。为什么我不能将它们应用于私人成员(文档似乎另有说明)。
注意:服务器端代码不是 ASP.NET;所以不使用WCF。
【问题讨论】:
标签: json serialization silverlight-4.0 datacontract datacontractjsonserializer