2013-04-25 5 views
1

У меня есть класс в C#, который сериализуется в XML, и этот класс имеет список объектов, которые он также сериализуется.Сериализация объекта для XML

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

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

} 

И вот объявление класса для узла.

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

ПРОБЛЕМА: Когда я сериализовать экземпляр ConfigSerializer для XML это не сериализации XML, как я бы ожидать, что она в отношении списка Node. Похоже, что это ...

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

Но я бы ожидать, чтобы это выглядело, как это (из-за декларации XmlRoot для класса Node) ...

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

ответ

4

Вы можете использовать этот

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

XmlArray Attribute - это решение наверняка, +1 – Amicable

+0

Это сделало трюк. Благодаря! – Jagd