/ / Ako serializovať triedu (s ICollection) - vb.net, entity-framework, xsd, entity-framework-6, xmlserializer

Ako serializovať triedu (s ICollection) - vb.net, entity-framework, xsd, entity-framework-6, xmlserializer

Mám triedu VB, ktorá obsahuje pole ďalších tried VB. Potom serializujem objekt do xml pomocou

Private Sub Serialize(myObject As Object, myObjectType As Type)

Dim ser As New XmlSerializer(myObjectType)
Dim myWriter As StreamWriter = New StreamWriter("D:DataTestmyXMLFile.xml")
ser.Serialize(myWriter, myObject)
myWriter.Close()

End Sub

moje hodiny:

Public Class mySerializableClass

Public Property Name As String
Public Property Adresse As String
Public Property IdF As Integer
Public Property ISC() As myInnerSerializableClass

End Class

Public Class myInnerSerializableClass

Public Property CNSS As String
Public Property nom As String

End Class

Až teraz všetko funguje dobre (a moje xml súbory sú vytvorené). Ale keď nahradím

Public Property ISC() As myInnerSerializableClass

s

Public Property ISC() As ICollection(Of myInnerSerializableCass)

Dostávam arror, ktorý znie: Pri odrazení typu "myCustomNameSpace.mySerializableClass" sa vyskytla chyba.

PS: Najskôr potrebujem ICollection pre kód EF alebo najprv nájdem spôsob, ako pracovať s políčkami v EF kóde.

odpovede:

0 pre odpoveď č. 1

Použiť XmlArray a XmlArrayItem atribúty vlastníctva, aby serializér vedel, že vlastnosť by mala byť serializovaná ako zoznam.

<XmlArray("ISC"), XmlArrayItem("myInnerSerializableClass")> _
Public Property ISC() As ICollection(Of myInnerSerializableCass)

Čítaj viac