views:

631

answers:

1

I'm trying to deserialize the XML below into class, with the "Components" deserialized into a List of type String, but can't figure out how to do so. The deserializer is working fine for all the other properties, but not "Components". Anyone know how to do this?

<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>
+3  A: 

Add a property like this to hold the list of Components:

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

Edit: Sorry I misread that. You want to read it into a collection of strings. I just tried this below and it worked on your sample. The key is just to setup the correct xml serialization attributes.

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