0

我有一個包含其他VB類的數組的VB類。然後,我用序列如何序列化一個類(有ICollection)

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

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

End Sub 

我的課的對象到XML:(創建和我的XML文件)

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 

,直到目前一切工作正常。但是,當我更換

Public Property ISC() As myInnerSerializableClass 

隨着

Public Property ISC() As ICollection(Of myInnerSerializableCass) 

我得到一個arror,上面寫着:類型的反射過程中出現錯誤 'myCustomNameSpace.mySerializableClass'

附:我首先需要用於EF代碼的ICollection,或者先找到一種在EF代碼中處理數組的方法。

回答

0

XmlArrayXmlArrayItem屬性應用於該屬性,以便序列化程序知道應將該屬性序列化爲列表。

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

更多

+0

錯誤仍然存​​在,我認爲這個問題是ICollection的是一個接口。 –

+0

@IsmailKarchi:[**是的,你是對的**](http://stackoverflow.com/a/15089253/3740093)。有沒有其他收集/列表類型可以使用? - 另外,你必須使用XML序列化?如果不是,則可以使用二進制序列化。 –

+0

這背後的客體是從sql數據創建xml文件。你知道任何解決方法來替換類中的ICollection(首先需要EntityFrameWork代碼) –