/ / Jak serializować klasę (z ICollection) - vb.net, entity-framework, xsd, entity-framework-6, xmlserializer

Jak serializować klasę (z ICollection) - vb.net, entity-framework, xsd, entity-framework-6, xmlserializer

Mam klasę VB, która zawiera tablicę innych klas VB. Następnie serializuje obiekt do xml przy użyciu

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 zajęcia:

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

Do teraz wszystko działa poprawnie (i moje pliki xml jest tworzony). Ale kiedy zastąpię

Public Property ISC() As myInnerSerializableClass

Z

Public Property ISC() As ICollection(Of myInnerSerializableCass)

Otrzymuję arror, który brzmi: Wystąpił błąd podczas odbicia typu "myCustomNameSpace.mySerializableClass"

P.S. Najpierw potrzebuję ICollection dla kodu EF lub znajdę sposób pracy z tablicami w kodzie EF.

Odpowiedzi:

0 dla odpowiedzi № 1

Aplikować XmlArray i XmlArrayItem atrybuty do właściwości, aby serializer wiedział, że właściwość powinna być serializowana jako lista.

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

Czytaj więcej