更改XmlSerializer序列化空元素的方式
我正在使用XmlSerializer。 它将对象序列化很好,但客户端要求所需的空元素采用此格式 。 序列化器将空元素序列化为
是否有办法将其更改为序列化客户端所需的方式。
在尝试了不同的事情后,我偶然发现了解决方案。 我将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"); } }
然后在代码中设置确认类型时,我使用默认构造函数而不是将Confirm设置为null。
retval.ConfirmBODDataArea.Confirm = new ConfirmType();
这序列化为
您可以尝试将XmlElementAttribute.IsNullable
属性设置为true
。 但是,请记住xsi:nil="true"
属性将作为结果输出。