我有一个类,其中包含一系列属性,可以很好地序列化。但是我需要其中一个属性来包含另一个类的集合以给我子类
示例XML
<VideoOptions>
<property1>value1</property1>
<property2>value2</property2>
<property3>
<item>
<property1>value1</property1>
</item>
<item>
<property1>value1</property1>
</item>
</property3>
</VideoOptions>
当我序列化主类时,我不确定如何实现这一点。
目前我使用此命令序列化我的类
Dim oXS As XmlSerializer = New XmlSerializer(GetType(VideoOptions))
Dim strW As New StringWriter
oXS.Serialize(strW, Me)
VideoOptionsAsXML = strW.ToString
答案 0 :(得分:0)
您只需要在VideoOptions类上拥有属性,该属性是Property3的集合
创建一个集合类,如下所示。
Public Class Property3Collection
Inherits CollectionBase
Public Function Add(ByVal item As Property3Item) As Integer
Return Me.List.Add(item)
End Function
Default Public ReadOnly Property Item(ByVal index As Integer) As Object
Get
Return CType(Me.List.Item(index), SingleItem)
End Get
End Property
End Class
为您的项目设置课程
Public Class Property3Item
'Add in Item property
End Class
建立你的Property3Collection类
Public Sub AddPropertyItem
Dim newCol as New Property3Collection
newCol.Add(New Property3Item)
End Sub
将属性添加到VideoOptions类
Public Property Property3() As Property3Collection
Get
End Get
Set(ByVal Value As Property3)
End Set
End Property
只要Property3Item有一个没有参数的构造函数(xml序列化需要),Xmlserializer类就会将它序列化并反序列化为你指定的格式而没有问题。
希望这有帮助