c#WCF反序列化问题

时间:2016-09-11 17:11:48

标签: c# wcf serialization

具有由以下类组成并由ServerSide(WCF)和ClientSide(Windows应用程序)应用程序共享的类库:

[DataContract]
public class A
{
    public A()
    {

    }

    [DataMemeber]
    public int A1 { get; set; }

    [DataMemeber]
    public string A2 { get; set; }
}

[DataContract]
public class B
{
    public B()
    {

    }

    [DataMemeber]
    public int B1 { get; set; }

    [DataMemeber]
    public string B2 { get; set; }

    [DataContract]
    public A B_A { get; set; }
}

如果我只请求B类对象,它会返回错误,因为Property B_A为NULL(事实上,在ServerSide上,属性B_A是非NULL),并且它不能在客户端进行反序列化。令人困惑的是,我认为WCF应该照顾它,就像有任何其他对象需要一样,它也会自动序列化。有什么想法吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应该使用DataMember

标记字段

所以这个:

[DataContract]
public A B_A { get; set; }

应该是:

[DataMember]
public A B_A { get; set; }