序列化没有根元素的Dotnet集合

本文关键字:Dotnet 集合 元素 序列化 | 更新日期: 2023-09-27 17:52:17

考虑以下序列化xml:

<Course>
  <Title>Engineering</Title>
  <Student>
    <Name>John Doe</Name>
  </Student>
  <Student>
    <Name>Jane Doe</Name>
  </Student>
   ...
</Course>

不幸的是,我不能修改schema。(理想情况下,我应该将Student类包装成Students根元素!)

我如何定义实体类,以便序列化可以正常工作?

我尝试下面的代码,但这产生的xml与Students包装元素。

public class Course
{
    public string Title { get; set; }
    public List<Student> Students { get; set; }
}
public class Student
{
    public string Name { get; set; }
}

序列化没有根元素的Dotnet集合

XmlElement属性添加到Students列表中,如下所示:

public class Course
{
    public string Title { get; set; }
    [XmlElement("Student")]
    public List<Student> Students { get; set; }
}