【问题标题】:c# WCF deserialize issuec# WCF反序列化问题
【发布时间】:2016-09-11 17:11:47
【问题描述】:

拥有由以下类组成并由服务器端(WCF)和客户端(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 类的对象,它会返回错误,因为属性 B_A 为 NULL(实际上属性 B_A 在服务器端不是 NULL)并且它不能在客户端反序列化。令人困惑的是,我认为 WCF 应该注意这一点,就像如果有任何其他对象需要,它也会自动序列化。有什么想法吗?

感谢您的帮助。

【问题讨论】:

    标签: c# wcf serialization


    【解决方案1】:

    你应该用DataMember标记字段

    所以这个:

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

    应该是:

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

    【讨论】:

    • 对不起,打错了,被标记为DataMember
    • @Tim,实际上它应该可以工作,mb 一些依赖项或您的类在 f.e. 中包含异常,共享真实代码
    猜你喜欢
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多