Speichern und erneutes Laden von app.config (applicationSettings) zur Laufzeit

8

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:

%Vor%

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)?

    
aleroot 13.06.2011, 20:30
quelle

4 Antworten

5

Sie müssen ConfigurationManager.RefreshSection in aufrufen um die Werte erneut von der Festplatte lesen zu lassen.

    
Josh 13.06.2011, 20:36
quelle
4

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

auf     
Oleg Savelyev 25.08.2015 19:22
quelle
3

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.

    
rerun 13.06.2011 20:37
quelle
0

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);

    
peter.fr 11.07.2014 08:15
quelle

Tags und Links