Отображение данных XML в класс в C # - PullRequest
0 голосов
/ 05 июля 2011

Если у меня есть внешний XML-канал и внутренний класс, каков наилучший способ автоматического чтения канала и сопоставления данных с новыми экземплярами класса?

То есть, если XML-канал похож на

<people>
   <person>
      <name>Bob</name>
   </person>
    <person>
      <name>Bill</name>
   </person>
</people>

А у моего класса Person есть свойство Name.Сейчас я перехожу к XmlReader, но это кажется неэффективным

1 Ответ

1 голос
/ 05 июля 2011

Самый простой способ отобразить xml на класс в c # - использовать сериализацию xml. Платформа -.Net поставляется со всем необходимым. Проблема в том, что ваш xml должен быть в правильном формате для чтения десериализатором.

Пример сериализации:

  XmlSerializer serializer = new XmlSerializer(typeof(List<Person>));
  TextWriter textWriter = new StreamWriter("people.xml");
  serializer.Serialize(textWriter, people);
  textWriter.Close();

Пример десериализации

   XmlSerializer deserializer = new XmlSerializer(typeof(List<Person>));
   TextReader textReader = new StreamReader("people.xml");
   List<Person> people; 
   people= (List<Person>)deserializer.Deserialize(textReader);
   textReader.Close();

Результат XML

XML должен выглядеть так (я не проверял):

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Person>
    <Name>Bob</Name>
  </Person>
  <Person>
    <Name>Bill</Name>
  </Person>
</ArrayOfPerson>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...