Pregunta

Estoy tratando de deserializar el XML a continuación en clase, con Components deserializado en una List < string > , pero no puedo averiguar cómo hacerlo . El deserializador funciona bien para todas las demás propiedades, pero no para Components . ¿Alguien sabe cómo hacer esto?

<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>
¿Fue útil?

Solución

Agregue una propiedad como esta para contener la lista de Componentes:

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

Editar: Lo siento, lo he leído mal. Quieres leerlo en una colección de cadenas. Acabo de probar esto a continuación y funcionó en su muestra. La clave es configurar los atributos de serialización xml correctos.

public class ArsAction
{
    [XmlArray]
    [XmlArrayItem(ElementName="Component")]
    public List<string> Components { get; set; }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top