[英]Xml Serialization - Render list of objects directly under Root - Xml - Element
[英]Xml Serialization - Render Empty Element
我正在使用XmlSerializer並在類中具有以下屬性
public string Data { get; set; }
我需要輸出完全如此
<Data />
我將如何實現這一目標?
我最近這樣做,有另一種方法,這似乎有點簡單。 您只需要將屬性的值初始化為空字符串,然后它將根據您的需要創建一個空標記;
Data = string.Empty;
解決方案是創建一個PropertyNameSpecified
屬性,序列化程序使用該屬性來確定是否序列化該屬性。 例如:
public string Data { get; set; }
[XmlIgnore]
public bool DataSpecified
{
get { return !String.IsNullOrEmpty(Data); }
set { return; } //The serializer requires a setter
}
嘗試使用public bool ShouldSerialize_PropertyName _(){}並在其中設置默認值。
public bool ShouldSerializeData()
{
Data = Data ?? "";
return true;
}
可以在MSDN上找到此工作原理的說明。
您可以嘗試將[XmlElement(IsNullable=true)]
等XMLElementAttribute添加到該成員。 這將強制XML Serializer添加元素,即使它是null。
您可以嘗試將[XmlElement(IsNullable = true)]等XMLElementAttribute添加到該成員中,並在get / set屬性中設置如下:
[XmlElement(IsNullable = true)]
public string Data
{
get { return string.IsNullOrEmpty(this.data) ? string.Empty : this.data; }
set
{
if (this.data != value)
{
this.data = value;
}
}
}
private string data;
所以你不會有:
<Data xsi:nil="true" />
你將在渲染上有這個:
<Data />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.