我試圖反序列化的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