我正在使用XmlSerializer。它可以很好地序列化对象,但客户要求必须以这种格式<star:Confirm/>
呈现空元素。然而,序列化程序将空元素序列化为<star:Confirm></star:Confirm>
,是否有方法可以更改序列化方式以满足客户的要求。
我正在使用XmlSerializer。它可以很好地序列化对象,但客户要求必须以这种格式<star:Confirm/>
呈现空元素。然而,序列化程序将空元素序列化为<star:Confirm></star:Confirm>
,是否有方法可以更改序列化方式以满足客户的要求。
在尝试了不同的方法之后,我意外地找到了解决方案。就像前面的答案建议的那样,我将XmlElementAttribute.IsNullable
设置为true。
[System.Xml.Serialization.XmlElementAttribute(ElementName = "Confirm", IsNullable=true)]
public ConfirmType Confirm
{
get
{
return this.confirmField;
}
set
{
this.confirmField = value;
this.RaisePropertyChanged("Confirm");
}
}
在代码中设置确认类型时,我使用了默认构造函数而不是将确认设置为null。
retval.ConfirmBODDataArea.Confirm = new ConfirmType();
<star:Confirm/>
。