0

我有我正在尝试序列化的对象。有一个属性有时可能为空,这导致了我的问题。

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

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

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

我已经尝试过示例c# xml 序列化不写 null但它对我不起作用。

编辑

下面是上面提到的属性。我应该提到这是一个部分类。这部分课程是我自己做的。实体框架制作了其他部分类。我现在可以看到一个问题,即实体框架会自动生成 get & set。

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

1 回答 1

1

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

例子:

public bool ShouldSerializeCostAmount()
{
   return CostAmount.HasValue;      
}
于 2013-10-31T14:46:29.183 回答