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:
  1. 'Serailizing a collection
  2. Dim data As New List(Of SerializableClass)
  3. 'Add items to the collection...
  4. Serializer.SerailizeToXml(Of List(Of SerializableClass))("C:\output.xml", data)
  5.  
  6. 'And for as single object
  7. Dim sc As New SerializableClass
  8. Serializer.SerailizeToXml(Of SerializableClass)("C:\output.xml", sc)

Usage: Deserialization
vb.net Code:
  1. 'Deserialize a collection
  2. Dim results As List(Of SerializableClass)
  3. results = Serializer.DeserializeFromXml(Of List(Of SerializableClass))("C:\output.xml")
  4.  
  5. 'And for a single object
  6. Dim sc As SerializableClass
  7. sc = Serializer.DeserializeFromXml(Of SerializableClass)("C:\output.xml")

The Class
vb.net Code:
  1. Imports System.Xml.Serialization
  2. Imports System.IO
  3.  
  4. Public Class Serializer
  5.     Public Shared Sub SerailizeToXml(Of T)(ByVal Path As String, ByVal Data As T)
  6.         Dim fs As FileStream = File.Create(Path)
  7.         Dim xs As New XmlSerializer(GetType(T))
  8.         xs.Serialize(fs, Data)
  9.         fs.Close()
  10.         fs.Dispose()
  11.     End Sub
  12.  
  13.     Public Shared Function DeserializeFromXml(Of T)(ByVal Path As String) As T
  14.         If File.Exists(Path) Then
  15.             Dim fs As FileStream = File.OpenRead(Path)
  16.             Dim xs As New XmlSerializer(GetType(T))
  17.             Dim result As T = CType(xs.Deserialize(fs), T)
  18.             fs.Close()
  19.             fs.Dispose()
  20.             Return result
  21.         End If
  22.     End Function
  23. End Class