Узел XML-сериализации появится дважды - PullRequest
0 голосов
/ 24 октября 2018

В моем коде на 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 голосов
/ 24 октября 2018

Когда вы используете List или массив, он будет рассматриваться как `XmlArrayItem 'для преодоления использования' XmlElement '

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