Wie in Runtime-Anwendungseinstellungen ändern
-
23-08-2019 - |
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.
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 ...