Frage

Ich versuche, im laufenden Betrieb einen Schlüssel meiner Anwendungen Einstellungsdatei zu ändern, aber es funktioniert nicht.

ich auf diese Weise:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";

Es scheint, dass es nur im Speicher ändert, nicht auf der Datei.

Hat jemand weiß, wie dies zu tun?

Danke.

War es hilfreich?

Lösung

Werfen Sie einen Blick auf meine Überblick .NET-Einstellungen Dateien ... kurz gesagt, ich glaube, Sie eine Benutzer-scoped Einstellung mögen. Es verhält sich eher wie Sie es erwarten.

  

Edit: Wenn Sie die Einstellungen Designer in Visual Studio , dann ändern Sie einfach die "Scope" auf "Benutzer". Wenn nicht, sollten Sie in der Lage sein, programmatisch das äquivalent zu tun.

Andere Tipps

Die AppSettings-Datei ist nicht beschreibbar zu sein entworfen. Es ist so konzipiert, Konfigurationen zu speichern, die möglicherweise nicht zur Laufzeit ändern, aber im Laufe der Zeit also ändern. DB-Verbindungszeichenfolgen, Web-Service-URL, etc

So, während es möglich sein kann, die Datei in Wirklichkeit zu aktualisieren, sollten Sie erneut Esel, wenn dieser Wert sollten dort gespeichert werden.

Angenommen, Ihre Anwendung hat Schreibrechte auf die Datei ...



    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  // the config that applies to all users
    AppSettingsSection appSettings = config.AppSettings;

    if (appSettings.IsReadOnly() == false)
    {
        appSettings("Key").Value = "new value";

        config.Save();
    }

Ich ignoriere alle möglichen Ausnahmen, die ausgelöst werden kann ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top