XML序列化节点出现两次

时间:2018-10-24 11:18:40

标签: c# xml-serialization

在我的C#代码中,我尝试使用XML序列化而不是xml linq。我不确定哪个更好。

但是现在我遇到的问题是我的节点要来两次。这是我的课程结构

public class Enterprise
{
    public Properties properties;
    public List<Person> person;
}

这是我生成的xml

<?xml version="1.0" encoding="iso-8859-1"?>
<enterprise>
<properties lang="nb">
<Comments>Utlasting av LMS-data</Comments>
<Datasource>SIKT</Datasource>
<Target />
<Datetime>onsdag 24. oktober 2018</Datetime>
</properties>
<person>
<Person>
  <sourceid>
    <Source>AD</Source>
    <Id>123</Id>
  </sourceid>
  <Userid>mohsin</Userid>
</Person>

如您所见,Person标签要出现两次。就是这样设置的

Enterprise enterprise = new Enterprise();
enterprise.properties.LanguageCode = "nb";
enterprise.properties.Comments = "Utlasting av LMS-data";
enterprise.properties.Datasource = "SIKT";
enterprise.properties.Target = "";
enterprise.properties.Datetime = DateTime.Now.ToLongDateString();

List<Person> person = new List<Person>();


person.Add(new Person
{
    //sourceid = new SourceId
    //{
    //    Id = "123",
    //    Source = "AD"
    //},
    Userid = "mohsin"
});

enterprise.person = person;

有人知道原因吗?

1 个答案:

答案 0 :(得分:3)

当您使用列表或数组时,它将被视为“ XmlArrayItem”以克服使用“ XmlElement”的情况

public class Enterprise
{
  public Properties properties;
  [XmlElement("person")]
  public List<Person> person;
}