Application Settings lesen und schreiben

 

 

Autor: Jürgen Gutsch

Version: 1.0

Sprache: vb.net

 

Benötigt wird:

.net Framework ab v2.0

VisualStudio.net

 

 

Application Settings lesen und schreiben

 

Beim erstellen einer größeren Desktopanwendung bin ich auf das Problem gestoßen, dass ich benutzerdefinierte Einstellungen (Optionen die der Benutzer einstellen kann) und globale Einstellungen (Optionen die vom Entwickler, oder von einem Administrator vorgenommen werden können) auslesen muss. bei den globalen ist es kein großes Problem aus der app.config die entsprechenden Application Settings auszulesen. Wo aber sollte ich die benutzerdefinierten Einstellungen auslesen, und vor allem speichern. Um nicht das rat neu zu erfinden, ließ ich mir von Google folgenden Artikel suchen: http://www.xtremevbtalk.com/ wird eine Klasse vorgestellt, die wahlweise benutzerdefinierte Einstellungen im Windows Benutzerverzeichnis speichert (\documents and settings\<username>\application data), oder in den Windows Share Verzeichnissen ("\documents and settings\All Users\application data")

 

Um jetzt meine AppSettings aus der web.config ebenfalls mit dieser Klasse auslesen können habe ich lediglich die Methode GetSetting() etwas ändern müssen:

Public Function GetSetting(ByVal key As String) As String
    'xml document object
    Dim xd As New System.Xml.XmlDocument 
    Dim asr As New System.Configuration.AppSettingsReader
    'load the xml file 
    xd.Load(_configFileName) 
    'query for a value 
    Dim Node As System.Xml.XmlNode = 
        _ xd.DocumentElement.SelectSingleNode( 
        _ "/configuration/appSettings/add[@key=""" & key & """]") 
    'return the value or nothing if it doesn't exist
    If Not Node Is Nothing Then
        Return  Node.Attributes.GetNamedItem("value").Value 
    Else
        If Not asr.GetValue(key, GetType(String )) Is Nothing Then 
            Return  asr.GetValue(key, GetType(String )) 
        Else 
            Return Nothing 
        End If 
    End If 
End Function

 

Ein Anwendungsbeispiel:

Dim Setings As New AppSettings(AppSettings.Config.PrivateFile) 
Dim strVar As String = Setings.GetSetting("mysetting") 
strVar = strVar & " Hallo Welt" 
Setings.SaveSetting("mysetting", strVar) 
strVar = Setings.GetSetting("mysetting")
MsgBox(strVar)