2016-07-24 18 views
1

Ich mache einen Test, um es zu verwenden.Wie verwende ich ein Array mit XmlSerializer?

Ich habe folgende xml:

<?xml version="1.0"?> 
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <ma>233</ma> 
    <ma>2333</ma> 
</test> 

Ich habe diese Klasse es deserialisieren:

[Serializable] 
public class test 
{ 
    public string ma { get; set; } 
} 

Es tut enthält das erste Element. Jetzt möchte ich beide so versuche ich ein Array Einstellung

[Serializable] 
public class test 
{ 
    public string[] ma { get; set; } 
} 

jedoch ein Array Einstellung ich jetzt 0 Ergebnis in ma Variable haben, während ich zumindest die erste, wenn es kein Array ist.

fand ich diese Antwort Using XmlSerializer with an array in the root element, aber er verwendet eine andere Logik ... Ich möchte [Serializable]

Antwort

1

Sie zeigen müssen, dass das Array keine separate XML-Element muss seine Elemente wickeln, sondern dass die Array-Elemente erscheinen direkt unter dem Element <test>:

public class test 
{ 
    [XmlElement] 
    public string[] ma { get; set; } 
} 

PS. manchmal ist es schwer, das Mapping richtig zu machen - ich fülle normalerweise eine Klasse mit Testdaten und serilalize es aus, was untersucht XmlSerializer macht das normalerweise klar, was los ist.