/ / Как да сериализираме клас (с ICollection) - vb.net, entity-framework, xsd, entity-framework-6, xmlserializer

Как да сериализираме клас (с ICollection) - vb.net, entity-framework, xsd, entity-framework-6, xmlserializer

Имам клас VB, който съдържа масив от други класове VB. След това сериализирам обект в xml

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

моите класове:

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

Досега всичко работи добре (и моите xml файлове се създават). Но когато заменя

Public Property ISC() As myInnerSerializableClass

с

Public Property ISC() As ICollection(Of myInnerSerializableCass)

Получавам аромат, който гласи: Възникна грешка при отразяване на тип "myCustomNameSpace.mySerializableClass"

Послепис Нуждая се първо от ICollection за EF код или първо намерете начин да работите с масиви в EF кода.

Отговори:

0 за отговор № 1

Прилагане на XmlArray и XmlArrayItem атрибути на имота, така че serializer знае, че собствеността трябва да се сериализира като списък.

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

Прочетете още