有没有办法将元素和属性添加到序列化集合子类?
以下是一个例子:
[XmlRoot("MyTs")]
public class MyCollection : HashSet<MyT>
{
[XmlAttribute]
public string Name { get; set; }
//[XmlElement]
public string Description { get; set; }
}
序列化的XML不包含其他元素和属性。有没有办法添加它,仍然使用序列化类作为HashSet
子类?
对于上面的示例,我想要以下XML:
<?xml>
<MyTs name="name">
<MyT/>
<MyT/>
<MyT/>
<Description>Some long verbal rubbish</Description>
</MyTs>
答案 0 :(得分:3)
要XmlSerializer
,某些 集合 xor 数据对象。不是两个。
但是,你可以这样做:
[XmlRoot("MyTs")]
public class MyRoot
{
[XmlAttribute]
public string Name { get; set; }
//[XmlElement]
public string Description { get; set; }
private readonly HashSet<MyT> items = new HashSet<MyT>();
[XmlElement("MyT")]
public HashSet<MyT> Items {get { return items;}}
}
将具有您想要的xml结构。