2009-07-30 6 views
14

Ich versuche, das XML unten in Klasse zu deserialisieren, mit der Components deserialized in eine List<string>, aber kann nicht herausfinden, wie das geht. Der Deserializer funktioniert für alle anderen Eigenschaften, aber nicht Components. Weiß jemand, wie man das macht?Wie in eine Liste deserialize <String> mit dem XmlSerializer

<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> 
+0

Bitte veröffentlichen Sie die Klasse, die Sie serialisieren und deserialisieren möchten. –

Antwort

36

eine ähnliche Immobilien In der Liste der Komponenten zu halten:

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

Edit: Sorry, ich falsch verstanden, dass. Sie möchten es in eine Zeichenkettensammlung einlesen. Ich habe es gerade unten versucht und es hat an deiner Probe funktioniert. Der Schlüssel besteht nur darin, die korrekten XML-Serialisierungsattribute einzurichten.

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

Wurde mir wirklich sehr geholfen Vielen Dank – Lijo

+0

[XmlArray] ist optional, wenn der Eigenschaftsname der gleiche wie Tag-Name ist –

+0

[XmlArrayItem (ElementName = "Komponente")] kann verkürzt werden als [XmlArrayItem ("Komponente")]. Getestet auf. Net 4.0 –

Verwandte Themen