Как десериализовать в список <String>с помощью XmlSerializer - PullRequest
18 голосов
/ 30 июля 2009

Я пытаюсь десериализовать приведенный ниже XML в класс с десериализацией Components в List<string>, но не могу понять, как это сделать. Десериализатор работает нормально для всех других свойств, но не Components. Кто-нибудь знает, как это сделать?

<ArsAction>
  <CustomerName>Joe Smith</CustomerName>
  <LoginID>jdsmith</LoginID>
  <TicketGroup>DMS</TicketGroup>
  <Software>Visio 2007 Pro</Software>
  <Components>
    <Component>Component 1</Component>
    <Component>Component 2</Component>
  </Components>
  <Bldg>887</Bldg>
  <Room>1320p</Room>
</ArsAction>

1 Ответ

43 голосов
/ 30 июля 2009

Добавьте свойство, подобное этому, чтобы содержать список компонентов:

[XmlArray()]
public List<Component> Components { get; set; }

Редактировать: Извините, что неправильно понял. Вы хотите прочитать это в коллекцию строк. Я только что попробовал это ниже, и это сработало на вашем образце. Ключ просто установить правильные атрибуты сериализации xml.

public class ArsAction
{
    [XmlArray]
    [XmlArrayItem(ElementName="Component")]
    public List<string> Components { get; set; }
}
...