如何使用XmlElementAttribute for List ?

我有一个这样的课:

public class Level { [XmlAttribute] public string Guid { get; set; } } public class LevelList : List { } public class Test { public LevelList CalLevelList { get; set; } } 

使用XmlSerializer,我得到这样的输出:

      

这在技术上是正确的。 但是,在不更改类名的情况下,我想使输出看起来像这样:

      

我知道这可以通过属性完成,但无法弄清楚如何。 当我向Test类添加一个属性时,如下所示:

  public class Test { [XmlElement("Levels")] public LevelList CalLevelList { get; set; } } 

输出非常令人惊讶:

   

这意味着,我丢失了父节点。 我指定的元素名称成为节点名称。 为什么这个? 如何让它工作?

试试这个:

 public class Test { [XmlArray("Levels")] [XmlArrayItem("L")] public LevelList CalLevelList { get; set; } }