我正在使用XmlSerializer。它可以很好地序列化對象,但客戶端要求所需的空元素爲<star:Confirm/>
。序列化器將空元素序列化爲<star:Confirm></star:Confirm>
是否有方法將其更改爲序列化客戶端所需的方式。更改XmlSerializer如何序列化空元素
3
A
回答
7
嘗試不同的事情後,我意外地發生瞭解決方案。我將XmlElementAttribute.IsNullable
設置爲正確,就像之前提出的答案。
[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();
此序列化爲<star:Confirm/>
3
您可以嘗試將XmlElementAttribute.IsNullable
屬性設置爲true
。但是,請記住xsi:nil="true"
屬性將作爲結果輸出。
相關問題
- 1. XmlSerializer。空日期和時間元素的反序列化
- 2. XmlSerializer反序列化空元素的屬性
- 3. 帶有不同元素名稱的XmlSerializer反序列化列表
- 4. 將空元素反序列化爲空
- 5. XmlSerializer:如何捕獲每個反序列化元素的文件/行/列信息?
- 6. 使用XmlSerializer反序列化XML響應時缺失根元素
- 7. 使用XmlSerializer反序列化選擇的複雜類型元素
- 8. XmlSerializer - 將不同元素反序列化爲同一元素的集合
- 9. 的XmlSerializer:序列化元素的數組不同的元素名稱字符串
- 10. 的Xml反序列化的空元素
- 11. XML序列化 - 渲染空元素
- 12. 更改XML序列化程序的數組元素的名稱
- 13. 使用XmlSerializer序列化IntPtr
- 14. XmlSerializer不會序列化IEnumerable
- 15. XMLSerializer未序列化DateTime
- 16. XmlSerializer和xsi:反序列化
- 17. 使用XmlSerializer序列化ArrayList
- 18. 如果找不到元素,我能否使用C#中的XmlSerializer反序列化?
- 19. Hgroup - 如何更改元素的順序?
- 20. jQuery的:後更改元素值序列化
- 21. XmlSerializer非名稱空間反序列化列表
- 22. 如何更改DOM元素?
- 23. 如何更改CKEditor元素
- 24. XMLSerializer不寫入列表中的元素
- 25. XmlSerializer的列表項元素名稱
- 26. 如何更改序列化對象?
- 27. 如何更改Flexbox列中元素的順序?
- 28. 反序列化XML元素
- 29. XML序列化父元素
- 30. 更改元素的順序
謝謝你提醒我關於默認值,我應該使用默認的構造函數,而不是在vb.net代碼=什麼也沒有! :) – 2016-11-02 13:49:36