[英]XMLSerializer and creating an XML Array with an attribute
我正在嘗試創建一個可以通過XMLSerializer序列化為XML的類。
目標XML應該看起來像這樣
<subject_datas type="array">
<subject_data>
...
</subject_data>
<subject_data>
...
</subject_data>
</subject_datas>
問題是subject_datas標記的type屬性。 我試圖將其設計為派生列表,並使用XMLAttribute屬性附加屬性,如下所示
[XmlRoot(ElementName = "subject_datas")]
public class SubjectDatas : List<SubjectData>
{
public SubjectDatas (IEnumerable<SubjectData> source)
{
this.AddRange(source);
Type = "array";
}
[XmlAttribute(AttributeName = "type")]
public string Type { get; set; }
}
但是因為該類是一個Collection,所以XMLSerializer只會序列化Collection中的對象,而不是Collection本身。 所以我的Type屬性被忽略了:(
您可以在繼承中使用合成
[XmlRoot(ElementName = "subject_datas")]
public class SubjectDatas
{
[XmlElement(ElementName = "subject_data")]
public List<SubjectData> SubjectDatas2 { get; set; }
public SubjectDatas(IEnumerable<SubjectData> source)
{
SubjectDatas2= new List<SubjectData>();
this.SubjectDatas2.AddRange(source);
Type = "array";
}
private SubjectDatas()
{
Type = "array";
}
[XmlAttribute(AttributeName = "type")]
public string Type { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.