Ich habe die Konfiguration meiner Anwendung in der app.config gespeichert. Von Visual Studio habe ich einen Anwendungsschlüssel auf der Einstellungsregisterkarte des Projekteigenschaften-Dialogs erstellt, dann habe ich diesen Schlüssel auf Anwendungsebene (NICHT bei Benutzer) gesetzt Niveau).
Visual Studio generiert automatisch die folgende XML-Datei (app.config):
%Vor% Nun möchte ich die Einstellungen zur Laufzeit speichern und neu laden, hier ist mein Code, mit dem der Wert DatabasePath
in der Konfigurationsdatei gespeichert werden kann:
Das Problem ist, dass mit diesem Code die neuen Einstellungen nicht von der Anwendung geladen werden, bis ich die Anwendung neu starte; Gibt es eine Möglichkeit, die Konfigurationseinstellungen zur Laufzeit neu zu laden?
Ich möchte auch den festen Wert des Namens von applicationSettings
-Abschnitt (AleTest.Properties.Settings) durch einen Variablenwert ersetzen, eine Variable im Framework existieren, die diesen Wert annehmen (AleTest.Properties.Settings)?
Sie müssen ConfigurationManager.RefreshSection in aufrufen um die Werte erneut von der Festplatte lesen zu lassen.
Ich habe ein paar Tests gemacht und hier ist das Ergebnis.
Für die automatisch generierte Klasse Settings
wendet der Aufruf von ConfigurationManager.RefreshSection("applicationSettings");
nicht die geänderten Werte für mit ApplicationScopedSettingAttribute
markierte Mitglieder an, sondern wendet die Änderungen auf zukünftige Aufrufe über ConfigurationManager
members an (und nicht sicher über% co_de) %).
Rufen Sie stattdessen UserScopedSettingAttribute
Was Sie wollen, können Sie erreichen, indem Sie eine benutzerdefinierte ConfigSection erstellen, die Ihnen mehr Kontrolle und Kontrolle ermöglicht ermöglicht es Ihnen, den Namen zu ändern. Der Konfigurationsmanager verfügt über einen Aktualisierungsabschnitt, in dem Sie die Daten erneut laden können.
Der Code von Aleroot zum Aktualisieren der Werte funktionierte einwandfrei. Trotz Eigenschaften. Einstellungen nur schreiben (nicht gesetzt).
Zum Auffrischen funktionierte das für mich: ConfigurationManager.RefreshSection ("applicationSettings");
Aber ich benutze dies, um auf den Parameter zuzugreifen: Zeichenkettentest = Properties.Settings.Default.MyString; MessageBox.Show ("Paramètres / Settings MyString=" + test);
Tags und Links configuration c# c#-2.0