在反序列化XML时,有没有办法将不同的命名xml节点转换为一个类
示例XML:
<items>
<aaa>value</aaa>
<bbb>value</bbb>
</items>
Normaly我会写:
[XmlRoot("items")]
class Items
{
[XmlElement("aaa")]
public string aaa;
[XmlElement("bbb")]
public string bbb;
}
但现在我想做这样的事情
[XmlRoot("items")]
class Items
{
[XmlElement("aaa")]
[XmlElement("bbb")]
public List<string> item;
}
如果将“aaa”和“bbb”添加到同一列表中,我很乐意。
答案 0 :(得分:0)
在反序列化过程中你不能这样做 - 想象一下你的第二个对象如何被序列化为XML,如果你的方法可行......那么XML序列化器怎么知道是否以及何时使用“aaa”或“bbb”作为元素标签......
您可以做的是首先将直接序列化转换为XML可序列化对象类型(具有aaa
和bbb
属性),然后如果您真的必须,则创建一个包含{的单独对象{1}}并将所有数据粘贴在那里。