2010-06-09 49 views
0

有沒有辦法反序列化的XML反序列化不同的命名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

在反序列化過程中你不能這樣做 - 想象一下,如果你的這個方法是可能的話,你的第二個對象將被序列化爲XML ...... XML序列化程序如何知道是否以及何時使用「aaa 「或」bbb「作爲元素標記......

您可以做的是首先將直接序列化轉換爲XML序列化對象類型(使用aaabbb屬性),然後如果您確實必須,創建一個單獨的對象,其中包含一個List<string>並將所有數據粘在那裏。