![]() |
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 |
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (22,7
kB)
|
Downloads bisher: [ 424 ]
|
|
|