2013-04-25 140 views
1

我有一個C#安裝程序中的類,它將自己序列化爲XML,並且該類還具有序列化的對象列表。將對象序列化爲XML

[XmlRoot("Config")] 
public class ConfigSerializer { 

    [XmlArray("Nodes")] 
    public List<Node> LstNodes { get; set; } 

} 

這裏是Node的類聲明。

[XmlRoot("N")] 
public class Node { 
    // has a few different properties 
} 

問題:當我序列ConfigSerializer的實例到XML不序列化XML作爲我期待它與問候到節點列表。它看起來像這樣...

<Config> 
    <Nodes> 
    <Node></Node> 
    </Nodes> 
</Config> 

但我希望它看起來像這樣(因爲XmlRoot聲明節點類)...

<Config> 
    <Nodes> 
    <N></N> 
    </Nodes> 
</Config> 

回答

4

您可以使用此

[XmlRoot("Config")] 
    public class ConfigSerializer 
    { 
     [XmlArray("Nodes"),XmlArrayItem("N")] 
     public List<Node> LstNodes { get; set; } 
    } 
+0

XmlArray屬性是肯定的解決方案,+1 – Amicable 2013-04-25 15:54:22

+0

這樣做的竅門。謝謝! – Jagd 2013-04-25 16:04:39