在XML消息中序列化空值

时间:2013-10-31 14:31:49

标签: c# xml

我有一个我想要序列化的对象。有一个属性有时可能为null,这会导致我的问题。

问题是,一旦我的对象被序列化,查看XML消息,我会看到下面的一行。

<CostAmount d3p1:nil="true" xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" />

我想要的是标签CostAmount根本不包含在消息中。

我已经尝试了c# xml serialization doesn't write null示例,但它对我不起作用。

修改

以下是上述财产。我应该提到这是一个部分类。这个部分课程由我自己完成。实体框架使另一个部分类。我现在可以看到一个问题,即实体框架会自动生成get&amp; amp;集。

        [XmlElement("dfCostAmount")]
        public Double? CostAmount;
        [XmlIgnore]
        public bool CostAmountSpecified
        {
            get
            {
                return (CostAmount != null & CostAmount.HasValue);
            }
        }

1 个答案:

答案 0 :(得分:1)

您可以按照ShouldSerialize模式实施成员。与上面的代码类似,但不是CostAmountSpecified属性,而是实现成员ShouldSerializeCostAmount。

示例:

public bool ShouldSerializeCostAmount()
{
   return CostAmount.HasValue;      
}