Speichern von Einstellungen in C# mit AppSettings

Wie speichert man eigentlich schnell und einfach Einstellungen in C# Anwendungen? Diese Frage hat sich sicherlich jeder einmal in seiner C# Laufbahn gestellt und die Antwort ist so simpel. Am einfachsten geht es mit den AppSettings des ConfigurationManager im .Net-Frameworks.

Das .Net-Framework bringt nämlich gleich einen eigenen Manager zum verwalten und speichern von Einstellungen mit sich. Die Eigenschaften werden im gebräuchlichen XML-Format abgelegt. Und damit ihr seht, dass der Umgang mit den AppSettings wirklich ein Kinderspiel ist, habe ich euch zwei kleine Methoden zum Speichern/Ändern und Auslesen von Einstellungen geschrieben.

public string getAppSetting(string key)
{
    //Laden der AppSettings
    Configuration config = ConfigurationManager.OpenExeConfiguration(
                            System.Reflection.Assembly.GetExecutingAssembly().Location);
    //Zurückgeben der dem Key zugehörigen Value
    return config.AppSettings.Settings[key].Value;
}

public void setAppSetting(string key, string value)
{
    //Laden der AppSettings
    Configuration config = ConfigurationManager.OpenExeConfiguration(
                            System.Reflection.Assembly.GetExecutingAssembly().Location);
    //Überprüfen ob Key existiert
    if (config.AppSettings.Settings[key] != null)
    {
        //Key existiert. Löschen des Keys zum "überschreiben"
        config.AppSettings.Settings.Remove(key);
    }
    //Anlegen eines neuen KeyValue-Paars
    config.AppSettings.Settings.Add(key, value);
    //Speichern der aktualisierten AppSettings
    config.Save(ConfigurationSaveMode.Modified);
}

Sieht doch ganz einfach aus, oder?

Viele Grüße,
Raffi

9 Kommentare

  1. Xatorisays:

    Hi

    ansich ganz einfach nur Funktioniert das nicht bei mir unter VS 2013 Ultimate. Ich suche jetzt schon seit Tage eine Möglichkeit werte in die App.config zu schreiben weil die danach Auszuführenden Exen. werte brauche um dann zb Menüstrip etc aufzubauen.

    • Was genau funktioniert denn nicht? Wird eine Fehlermeldung geworfen? Hast du probiert den entsprechenden Code mit einem try-catch-Block zu ummanteln?

      • Xatorisays:

        Nee es kommt keine Fehler Meldung. Aber die AppConfig wird nicht beschrieben. Denn der Key Rechte ist immer noch auf default . Oder müss er nicht die AppConfig in dem Ordner überschreiben ?

        • Sorry, ich kann dir leider immer noch nicht ganz folgen. Wenn du möchtest und es sich nicht um ein “Geheimprojekt” handelt, kannst du mir gerne mal deinen Code zukommen lassen, dann schau ich mal drüber und debugge eine Runde. (Mailadresse findest du im Impressum bzw. auf der About-Seite.)

  2. Leifsays:

    Hallo,
    ich habe eine Frage, ob das Beispiel auch noch mit Visual Studio 2013 / .Net Framework 4.5 funktioniert und wenn ja, welche “using-Direktive” ich einbinden muss damit das Beispiel läuft. Denn wenn ich das so bei mir einbinde, sagt er das er z.B. “Configuration” (Zeile 4) nicht kennt.
    Danke

    • Thomassays:

      Das funktioniert auch mit Visual Studio 2013.
      Man muss den verweis System.Configuration setzen und dann im Sourcecode Using System.Configuration; einfügen. Schon funktioniert es

  3. Renésays:

    Danke,
    könntest aber auch gerne mal posten wie ich zB eingaben speichere. zB. habe ich jetzt in TextboxName einen Namen stehen, der beim nächsten Start der Anwendung wieder da drinne stehen soll. :)

    • Raffisays:

      Klar, kann ich gerne machen. Artikel kommt dann aller Vorraussicht nach morgen. Möchtest du eine Info oder hast du den RSS-Feed eh abonniert?

      • Renésays:

        Hab deinen Blog in der Opera Schnellwahl, da klick ich eh immer drauf *g Und danke schon mal!

Schreibe einen Kommentar zu Thomas Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.