我有一个用于 Xml 序列化的类。
在其中,我有一个可空属性,该属性带有 XmlAttribute 标记:
[XmlAttribute("lastUpdated")]
public DateTime? LastUpdated { get; set; }
如何在属性为null或空时从序列化中忽略它?
我尝试了下面的方法,但当有值时它不会被序列化(总是被忽略):
[XmlIgnore]
public DateTime? LastUpdatedValue { get; set; }
[XmlAttribute("lastUpdated")]
public DateTime LastUpdated { get; set; }
public bool ShouldSerializeLastUpdated()
{
return LastUpdatedValue.HasValue;
}
<lastUpdated xsi:nil="true"/>
;你可以事后处理你的xml(更容易),或者你可以编写一个XmlWriter类(更难,但性能更好)。还有其他选项,既困难又臃肿你的代码。 - Sten Petrov