序列化DataContract和NULL datamember

时间:2015-12-16 11:30:36

标签: c# .net serialization null

我在序列化null值时遇到问题。实际上我根本不想包含它。

[DataContract]
public class SearchItem{
   public SearchCriteria()
    {
        IsActive = true;
        IsFiltered = true;
    }

    [DataMember(Order=01)]
    public bool? IsActive { get; set; }
    [DataMember(Order=02)]
    public bool IsPriceFiltered { get; set; }

}

当我想像

那样实现时
 new SearchCriteria(){
 IsActive = null, 
}

它仍然会序列化IsActive属性。

如何解决这个问题的任何建议?

创建为enum或与其他constructor实例化的解决方案不是我的选项。

1 个答案:

答案 0 :(得分:0)

您可以使用EmitDefaultValue

[DataMember(Order=01, EmitDefaultValue=false)]
public bool? IsActive { get; set; }