我有一个用于 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;
}
最佳答案
XmlSerialization 不直接支持 Nullable。
如果您想使用可空属性,您必须使用不可空属性并添加一个与属性同名的 bool 属性,后缀“Specified”指定属性何时必须可序列化。
您的案例示例:
private DateTime? _lastUpdated;
[XmlAttribute("lastUpdated")]
public DateTime LastUpdated {
get {
return (DateTime)_lastUpdated;
}
set
{
_lastUpdated = value;
}
}
public bool LastUpdatedSpecified
{
get
{
return _lastUpdated.HasValue;
}
}
关于c# - 如果可为 null 的属性为 null 或为空,如何从序列化中忽略它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16172581/