Tipp 0185 Anwendungseinstellungen mit XML serialisieren
Autor/Einsender:
Datum:
  Michael Werner
08.10.2008
Entwicklungsumgebung:   VB.Net 2008
Framework:   2.0
Um Klassendaten serialisieren zu können, muss der Klasse das Attribut <Serializable()> vorangestellt werden. Im Tipp werden Benutzereinstellungen, wie z.B. ein Username und Formulareigenschaften wie Screenposition, Höhe und Breite des Formulars, Schrift- und Hintergundfarbe und die Eigenschaft TopMost mit Hilfe von System.Xml.Serialization im Application.UserAppDataPath gespeichert und von dort wieder ausgelesen.
Die Klasse XmlSerialization
 
Imports System.Xml.Serialization
Imports System.Xml
Imports System.IO

Namespace zaack
  Public Class XmlSerialization

     ' Speicherpfad festlegen
    Private SettingsPath As String = Application.UserAppDataPath _
       & "\data.xml"

    ''' <summary>
    ''' Deserialieren
    ''' Die Einstellungen werden ausgelesen
    ''' </summary>
    ''' <returns>myAppSettings</returns>
    ''' <remarks></remarks>

    Public Function ReadSettings() As myAppSettings
      Dim mySettings As New myAppSettings

       ' Wenn die Datei nicht vorhanden ist, wird sie angelegt
      If IsFileExisting() Then
         ' Ein XmlSerializer nimmt die Einstellungen auf
        Dim mySerializer As New _
           XmlSerializer(GetType(myAppSettings))
         ' Ein StreamReader zeigt auf die Datei
        Dim myTextReader As New StreamReader(SettingsPath)
         ' Ein XmlTextReader liest die Einstellungen
        Dim myXmlReader As New Xml.XmlTextReader(myTextReader)

         ' Prüfen, ob die Datei deserialisiert werden kann.
        If mySerializer.CanDeserialize(myXmlReader) Then
           '  Deserialieren
          mySettings = _
            CType(mySerializer.Deserialize(myXmlReader), _
            myAppSettings)
            ' Die Reader wieder schließen
          myXmlReader.Close()
          myTextReader.Close()

          Return mySettings
        Else
          Return Nothing

        End If
      Else
        Return Nothing
      End If
    End Function

    ''' <summary>
    ''' Serialisieren
    ''' Speichern der Einstellungen in der xml-Datei
    ''' </summary>
    ''' <param name="mySet"></param>
    ''' <remarks></remarks>
    Public Sub SaveSettings(ByVal mySet As myAppSettings)
       ' Ein StreamWriter überschreibt alle Inhalte in der Datei.
      Dim myWriter As New System.IO.StreamWriter(SettingsPath)
       ' Ein XML Serializer serializiert das Objekt
      Dim myXmlSerializer As New _
          XmlSerializer(GetType(myAppSettings))

       ' Serialisieren
       myXmlSerializer.Serialize(myWriter, mySet)
        ' Der Writer wird geschlossen
       myWriter.Close()
     End Sub

      ' Existiert die Datei im SettingsPath?
      ' Wenn nicht, dann wird sie angelegt
     Public Function IsFileExisting() As Boolean
       Dim myIO As New FileInfo(SettingsPath)
       Return myIO.Exists()
     End Function

      ' Datei löschen
     Public Sub FileDelete()
       If System.IO.File.Exists(SettingsPath) Then
         System.IO.File.Delete(SettingsPath)
       End If
     End Sub
  End Class
End Namespace
 
Weitere Links zum Thema
XML-Datei gezielt auslesen
XML-Datei in Listview anzeigen

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (22,7 kB) Downloads bisher: [ 416 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Mittwoch, 26. Oktober 2011