2016-07-24 1 views
1

Je fais un test pour l'utiliser.Comment utiliser array avec XmlSerializer?

J'ai le code XML suivant:

<?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> 

Je cette classe pour désérialiser:

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

Il ne contient le premier élément. Maintenant, je veux à la fois que j'essaie tant de mettre un tableau

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

Cependant la mise en un tableau que j'ai maintenant 0 résultat dans la variable ma, alors que je au moins le premier quand il est pas un tableau.

Je trouve cette réponse Using XmlSerializer with an array in the root element, mais il a utilisé une autre logique ... Je voudrais continuer à utiliser [Serializable]

Répondre

1

Vous devez indiquer que le tableau ne dispose pas d'un élément XML distinct pour envelopper ses articles, mais que les éléments du tableau apparaissent directement sous l'élément <test>:

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

PS. Parfois, il est difficile d'obtenir la cartographie correcte - Je remplis habituellement une classe avec des données de test et serilalize il, en examinant ce que fait XmlSerializer de ce qui habituellement éclaircit ce qui se passe.