我正在使用XmlSerializer将对象序列化为XML。在那里我使用了属性IsNullable = true
来获取XML中的元素,即使该值为null。
因此,当值为NULL
时,其对应的元素是可见的,但具有额外属性xsi:nil="true"
。
有没有办法在序列化的XML中删除该属性?
答案 0 :(得分:0)
您可以使用 ShouldSerialize {property_name} 方法
例如,如果您的属性是SomeClassInstance
[XmlElementAttribute(IsNullable = true)]
public SomeClass SomeClassInstance { get; set; }
您可以像这样向该类添加方法:
public bool ShouldSerializeSomeClassInstance()
{
return (SomeClassInstance != null);
}
这种方式只有在它不为空时才出现在输出XML中。
参考:https://msdn.microsoft.com/en-us/library/53b8022e(v=vs.110).aspx