我试图反序列化的XML文档,其中一个节点可以这样表示:反序列化:几种节点到同一个对象
<n1 zone="00000" id="0000" />
或本:
<n2 zone="00000" id="0000" />
或本:
<n3 zone="00000" id="0000" />
在我的文档,我将永远有一个“N1”节点或一个“N2”节点或一个“N3”节点。我想将所有这些片段反序列化为此类的一个实例:
[Serializable]
public class N
{
[XmlAttribute("zone")]
public string Zone { get; set; }
[XmlAttribute("id")]
public string Id { get; set; }
}
但我没有设法做到这一点。文档建议使用XmlChoiceIdentifier属性来实现这一点,但也许我以错误的方式使用它。
有什么想法? PS:我知道我可以创建三个类:N1,N2和N3,并将它们映射到我的不同类型的XML片段。但我更喜欢更清洁的解决方案。
继承即将在脑海中。每个N *类继承自N – KyorCode
还想到了XPath:http://www.w3schools.com/xpath/xpath_syntax.asp – KyorCode
KyorCode:恰恰是我搜索要避免的解决方案:)但如果我找不到另一种方式我会使用继承。 – schglurps