我有一个我想要序列化的对象。有一个属性有时可能为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);
}
}
答案 0 :(得分:1)
您可以按照ShouldSerialize模式实施成员。与上面的代码类似,但不是CostAmountSpecified属性,而是实现成员ShouldSerializeCostAmount。
示例:
public bool ShouldSerializeCostAmount()
{
return CostAmount.HasValue;
}