【问题标题】:Is it possible to have optional DataMembers in WCF?WCF 中是否可以有可选的 DataMembers?
【发布时间】:2011-06-06 20:23:56
【问题描述】:

如果我有以下课程:

[DataContract]
public class GetColorsRS
{
    [DataMember(Name = "Colors", Order = 0, IsRequired=true)]
    public List<Color> Colors { get; set; }

    [DataMember(Name = "Errors", Order = 1, IsRequired=false)]
    public List<Error> Errors { get; set; }
}

如果在请求中没有发现错误,我想发回一个没有错误节点的响应,但是,它会传回一个空的错误节点。我以为这就是 IsRequired 的用途?

刚刚注意到 EmitDefaultValue,这是我要找的吗?

【问题讨论】:

  • 为什么不只是一个空的错误列表?基本上实现了同样的事情(没有任何混乱的黑客或技巧)??
  • @marc_s,我也可以。但是设置 EmitDefaultValue = false 几乎不是一个 hack 或混乱的技巧。

标签: wcf


【解决方案1】:

如果我不想序列化 DataMember 的默认值,我已确定应将 EmitDefaultValue 设置为 false。

 [DataMember(Name = "Errors", Order = 1, IsRequired=false,EmitDefaultValue=false)]
 public List<Error> Errors { get; set; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多