0

我遇到了另一个显然涉及继承类的问题:

例如,我有这个超类。

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格式返回,没有任何问题。

请问有什么方法可以让我的 Member 对象正确返回吗?我一直在搞砸这个问题,我的结论是它一定与继承的类和 json 有关。

4

3 回答 3

0

实际上,我关于继承类和 JSON 序列化的理论是有缺陷的。它有效,我不需要 [Datacontract] 和 [Datamember] 装饰器。还有什么不对劲的。也许我的结构太深太长了。我想知道 JSON 在大小方面是否有一些限制。

于 2013-05-17T07:41:56.090 回答
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; }
}
于 2013-05-16T20:59:06.930 回答
0

I ended using JSON.net from Newtonsoft. I would recommend to use that instead of wasting time on the native json feature in .net.

http://json.codeplex.com/

于 2013-05-18T11:04:55.880 回答