Feedback

Objekt mit dem XmlSerializer serialisieren

Sprache: VB

Diese Funktion kann ein Objekt serialisieren und als XML Datei speichern. Achtung der XmlSerializer hat einen nachteil: Man kann keine Objekte serialisieren die das IDictionary Interface implementiert haben, das geht nur mit dem BinaryFormatter (dazu habe ich ebenfalls ein Snippet)
''' <summary>
''' Diese Funktion serialisiert ein Objekt und speichert es als XML-Format Datei
''' </summary>
''' <typeparam name="T">Der Typ des Objekts</typeparam>
''' <param name="Obj">Das zu serialisierende Objekt</param>
''' <param name="FileName">Die XML Datei in der das Ergebnis gespeichert werden soll</param>
Public Sub XMLSerialize(Of T)(ByVal Obj As Object, ByVal FileName As String)
    Dim XML As New XmlSerializer(GetType(T))
    Dim FS As New FileStream(FileName, FileMode.Create)
    XML.Serialize(FS, Obj)
    FS.Close()
End Sub
''' <summary>
''' Diese Funktion serialisiert ein Objekt und speichert es als XML-Format Datei
''' </summary>
''' <typeparam name="T">Der Typ des Objekts</typeparam>
''' <param name="Obj">Das zu serialisierende Objekt</param>
''' <param name="FileName">Die XML Datei in der das Ergebnis gespeichert werden soll</param>
Public Sub XMLSerialize(Of T)(ByVal Obj As Object, ByVal FileName As String)
    Dim XML As New XmlSerializer(GetType(T))
    Dim FS As New FileStream(FileName, FileMode.Create)
    XML.Serialize(FS, Obj)
    FS.Close()
End Sub

1 Kommentar

  1. Der Typ-Parameter (T) ist überflüssig; der System.Type der an den Konstruktor von XmlSerializer übergeben werden muss, kann direkt aus dem angegebenen Objekt ermittelt werden.

    [code]Dim xml As New XmlSerializer(obj.GetType())[/code]