我遇到了另一个明显涉及继承类的问题:
我有这个超级班。
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有关。
答案 0 :(得分:0)
尝试此修复
[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; }
}
答案 1 :(得分:0)
实际上我关于继承类和JSON序列化的理论存在缺陷。 它工作,我不需要[Datacontrac]和[Datamember]装饰器。还有别的错。也许我的结构太深,太长。 我想知道JSON是否对尺寸有一些限制。
答案 2 :(得分:0)
我结束了使用Newtonsoft的JSON.net。我建议使用它,而不是浪费时间在.net上的原生json功能。