我想做一个序列化指定为参数的LIST的过程。但是我无法弄清楚如何通过参数解析MyClass时如何指定GetType(List(of MyClass))。我不能在过程中“硬编码” MyClass,因为我必须对不同的类使用此序列化程序。
Sub Main
Dim MyList As New List(Of NameClass)
MyList.Add(New NameClass("Thomas")
MyList.Add(New NameClass("Michael")
List_To_XMLFile(MyList, NameClass, "c:\temp\file.xml")
End sub
Sub List_To_XMLFile(MyList As List(Of Object), ListOfCObj As Object, Path As String)
Dim ser As XmlSerializer = New XmlSerializer(GetType(List(Of ListOfObject)))
Dim fs As FileStream = New FileStream(Path, FileMode.Create)
ser.Serialize(fs, MyList)
fs.Close()
End Sub
Public Class NameClass
Property Name As String
Sub New()
End Sub
Sub New(Name As String)
Me.Name = Name
End Sub
End Class
对象知道其类型,因此,如果您传递对象,则不需要传递类型。
Sub List_To_XMLFile(Of T)(MyList As List(Of T), Path As String)
Dim ser As XmlSerializer = New XmlSerializer(MyList.GetType())
Dim fs As FileStream = New FileStream(Path, FileMode.Create)
ser.Serialize(fs, MyList)
fs.Close()
End Sub
并用
List_To_XMLFile(MyList, "c:\temp\file.xml")
需要注意的是,因为我使用泛型类型,该方法可以被称为路过New List(Of NameClass)
,New List(Of OtherClass)
等这样T
需要的类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句