2010-11-17 4 views
4
[Serializable()] 
public class A 
{ 

     [XmlArrayAttribute("Item")] 
     public List<B> items; 
} 

[Serializable()] 
[XmlType(TypeName = "Item")] 
public class B 
{ 

} 

Après sérialisation, je trouve que j'ai quelque chose commetableau serialize d'objet

<Item> 
    <Item> **** </Item> 
    <Item> **** </Item> 
    ***** 
</item> 

Mais je ne veux que

<Item> **** </Item> 
<Item> **** </Item> 

Comment obtenir?

Répondre

5
public class A 
{ 
    [XmlElement("Item")] 
    public List<B> items; 
} 

public class B 
{ 

} 

Notez que vous n'avez pas besoin de l'attribut [Serializable]. Il est utilisé uniquement pour binary serialization et ignoré par XmlSerializer, ce que je soupçonne que vous utilisez même si cela aurait dû être clairement indiqué dans votre question. Aussi, pour une meilleure encapsulation, je vous recommande d'utiliser des propriétés au lieu de champs. Et une autre remarque: la convention de nommage standard en C# impose que les noms de propriétés commencent par une majuscule.

+0

Merci. Quand devrais-je utiliser XmlArrayAttribute? – user496949

+2

Lorsque vous souhaitez générer et personnaliser une séquence imbriquée d'éléments XML à partir de ce membre. –

Questions connexes