[2005/2008] Generic Xml Serialization Class
This a little class I made that can be used to serialize any serializable type to xml. This will work with a single object or collections etc. I figured I would share it, so here you go.
Usage: Serializing
vb.net Code:
'Serailizing a collection
Dim data As New List(Of SerializableClass)
'Add items to the collection...
Serializer.SerailizeToXml(Of List(Of SerializableClass))("C:\output.xml", data)
'And for as single object
Dim sc As New SerializableClass
Serializer.SerailizeToXml(Of SerializableClass)("C:\output.xml", sc)
Usage: Deserialization
vb.net Code:
'Deserialize a collection
Dim results As List(Of SerializableClass)
results = Serializer.DeserializeFromXml(Of List(Of SerializableClass))("C:\output.xml")
'And for a single object
Dim sc As SerializableClass
sc = Serializer.DeserializeFromXml(Of SerializableClass)("C:\output.xml")
The Class
vb.net Code:
Imports System.Xml.Serialization
Imports System.IO
Public Class Serializer
Public Shared Sub SerailizeToXml(Of T)(ByVal Path As String, ByVal Data As T)
Dim fs As FileStream = File.Create(Path)
Dim xs As New XmlSerializer(GetType(T))
xs.Serialize(fs, Data)
fs.Close()
fs.Dispose()
End Sub
Public Shared Function DeserializeFromXml(Of T)(ByVal Path As String) As T
If File.Exists(Path) Then
Dim fs As FileStream = File.OpenRead(Path)
Dim xs As New XmlSerializer(GetType(T))
Dim result As T = CType(xs.Deserialize(fs), T)
fs.Close()
fs.Dispose()
Return result
End If
End Function
End Class