【问题标题】:How to remove null DataMember properties from the response in wcf如何从 wcf 中的响应中删除 null DataMember 属性
【发布时间】:2011-01-08 06:55:27
【问题描述】:

我正在使用 wcf webservice 将 xml 输出返回到浏览器,如果 DataContract 的属性为空,它仍然会在响应中作为

<Id i:nil="true" />

有没有办法让它根本不在响应中返回?

【问题讨论】:

    标签: .net serialization


    【解决方案1】:

    我自己想通了,我需要将以下属性添加到我的 DataMembers 中

    [DataMember(EmitDefaultValue = false)]
    

    【讨论】:

    • 这似乎对我不起作用...我还应该补充什么吗?
    • 有没有办法将此指定为默认行为?这似乎是微软的一个严重疏忽。例如,对包含 100 多个 POCO 的类库的每个属性进行注释是完全不可接受的。
    • @Crush:我同意。有人对此有全局解决方案,而不是按属性?
    【解决方案2】:

    在你的属性所在的类中有一个构造函数。在构造函数中将其初始化为 null。如果 DataContract 的属性为 null,则它不会出现在您的 xml 输出中。 如果您希望它在数据存在时出现在输出中,只需在您公开数据的类中再次实例化它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-25
      • 2017-04-24
      • 1970-01-01
      • 2010-10-08
      • 2017-01-12
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多