我遇到了另一个明显涉及继承类的问题:
例如,我有一个超类。
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
}然后是一个子类:
public class Member : Person
{
public int MembershipId { get; set; }
public string Password { get; set; }
public List<Foo> Foos { get; set; }
}当我用下面的代码返回一个成员时,我没有得到任何有用的东西:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public Member GetMember()
{
return new Member
{
Firstname = "Jane",
Lastname = "Doe",
Email = "jane.doe@doe.com",
MembershipId = 10,
Password = "*****",
Foos = new List<Foo> { };
};
}未继承的类/对象被序列化,并以json格式返回,没有任何问题。
有没有什么方法可以让我的成员对象正确返回呢?我一直在处理这个问题,我的结论是它一定与继承的类和json有关。
发布于 2013-05-18 19:04:56
我结束了使用来自Newtonsoft的JSON.net。我建议使用它,而不是将时间浪费在.net的原生json特性上。
http://json.codeplex.com/
发布于 2013-05-17 04:59:07
尝试此修复
[DataContract]
public class Person
{
[DataMember]
public string Firstname { get; set; }
[DataMember]
public string Lastname { get; set; }
[DataMember]
public string Email { get; set; }
}
[DataContract]
public class Member : Person
{
[DataMember]
public string MembershipId { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public List<Foo> Foos { get; set; }
}发布于 2013-05-17 15:41:56
实际上,我关于继承类和JSON序列化的理论是有缺陷的。它可以工作,而且我不需要Datacontrac和Datamember装饰器。还有一些地方不对劲。也许我的结构太深太长了。我想知道JSON在大小方面是否有一些限制。
https://stackoverflow.com/questions/16570438
复制相似问题