是否可以在WCF中拥有可选的DataMembers?

Xai*_*oft 9 wcf

如果我有以下课程:

[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; }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Xai*_*oft 15

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

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