2017-09-13 3 views
3

j'ai les classes suivantes dans vb.net:Conversion classe modèle XML

Class A 
    Public Property Bs As New List(Of B) 
End Class 

Class B 
    Public Property D As String 
    Public Property E As String 
End class 

Je tiens à les convertir en XML en utilisant le code suivant:

Dim sw1 = New StringWriter() 
Dim xs1 As New XmlSerializer(A.GetType) 
xs1.Serialize(New XmlTextWriter(sw1), A) 
xml = xml.Replace("{1}", sw1.ToString()) 

Le format que les classes seront :

<A> 
    <Bs> 
    <B> 
     <D>1</D> 
     <E>2</E> 
    </B> 
    <B> 
     <D>3</D> 
     <E>2</E> 
    </B> 
</Bs> 
</A> 

Mais je voudrais avoir suivant:

<A> 
    <B> 
     <D>1</D> 
     <E>2</E> 
    </B> 
    <B> 
     <D>3</D> 
     <E>2</E> 
    </B> 
</A> 

Sans balise Bs, comment puis-je le faire en utilisant XmlElement ou XArray ... dans la classe?

+0

Lorsque la sérialisation classe 'A' XML, avez-vous besoin d'inclure d'autres propriétés en elle comme bien ou juste la 'Liste (Of B)'? –

+0

oui tous les éléments à l'intérieur B – David

+0

référez-vous toutes les propriétés à l'intérieur de Bs? – David

Répondre

1

Vous devriez être en mesure de réaliser ce comportement en appliquant la XmlElement attribute à votre liste, en ignorant XmlArray et XmlArrayItem:

Class A 
    <XmlElement("B")> _ 
    Public Property Bs As New List(Of B) 
End Class