2017-09-13 2 views
3

Ich habe die nächsten Klassen in vb.net:Konvertieren Modellklasse zu 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 

Ich wünsche ihnen in XML konvertieren nächsten Code verwendet:

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

Das Format dieser Klassen werden :

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

Aber ich würde nächste wünschen:

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

Ohne Tag Bs, wie kann ich es mit XmlElement oder XArray ... in der Klasse tun?

+0

Wenn Klasse Serialisierung 'A' zu XML, benötigen Sie, andere Eigenschaften darin enthalten, wie gut oder nur die 'List (Of B)'? –

+0

ja alle Elemente in B – David

+0

beziehen Sie alle Eigenschaften in Bs? – David

Antwort

1

Sie sollten in der Lage sein, dieses Verhalten zu erreichen, indem die XmlElement attribute auf Ihrer Liste anwenden, ignoriert XmlArray und XmlArrayItem:

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