Pergunta

Eu estou tentando desserializar o XML abaixo em classe, com o Components desserializado em um List<string>, mas não consigo descobrir como fazê-lo. O desserializador está funcionando bem para todas as outras propriedades, mas não Components. Alguém sabe como fazer isso?

<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>
Foi útil?

Solução

Adicionar um estabelecimento como este para manter a lista de componentes:

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

Edit: Desculpe, eu descaracterizou isso. Você querer lê-lo em uma coleção de strings. Eu apenas tentei isso abaixo e funcionou em sua amostra. A chave é apenas para configurar os atributos de serialização XML correto.

public class ArsAction
{
    [XmlArray]
    [XmlArrayItem(ElementName="Component")]
    public List<string> Components { get; set; }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top