5 Stimmen

Lesen und Schreiben von app.config in C#

Ich weiß, dass es viele Verweise auf app.config in diesem Forum gibt, aber ich stelle diese Frage hier, da ich meine Frage sehr direkt finde.

Mein app.config sieht folgendermaßen aus...

Ich habe den neuen CurrentLogFile Schlüssel von der Settings.Settings Designer-Seite als einen Application Schlüssel hinzugefügt. Ich muss dies beim Start der Anwendung lesen und beim Ändern der Protokolldateinummer zur Laufzeit schreiben.

Der folgende Code, den ich geschrieben habe, kann den Setting Schlüssel nicht neu schreiben. Es erstellt stattdessen einen vollständig neuen Eintrag in der Konfigurationsdatei:

int curLogFile = Settings.Default.CurrentLogFile;
curLogFile = curLogFile +1;

// Aktualisieren der neuen Protokolldateinummer zum Konfigurationsschlüssel "CurrentLogFile"
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

bool bReadOnly = config.AppSettings.Settings.IsReadOnly();
config.AppSettings.Settings.Remove("CurrentLogFile");
config.AppSettings.Settings.Add("CurrentLogFile", curLogFile.ToString());

// Speichern der Konfigurationsdatei.
config.Save(ConfigurationSaveMode.Modified);

// Erzwingen einer Neuladung einer geänderten Sektion.
ConfigurationManager.RefreshSection("appSettings");
Settings.Default.Reload();

Der neue CurrentLogFile wird am Anfang der Konfigurationsdatei erstellt, gleich nach dem Schließtag von , wie unten dargestellt:

Dies erstellt doppelte Einträge des CurrentLogFile Schlüssels (beide mit ** markiert, der neue oben).

Verwende ich die falsche Funktion zum Schreiben des Schlüssels?

1voto

cdmnk Punkte 314

Ihr Code ermöglicht den Zugriff nur auf den -Abschnitt im -Format. Für Lese-/Schreibzugriff auf und sollten Sie die standardmäßige Settings.settings-Datei verwenden, die die Einträge im folgenden Format vornimmt: 1 Der im Projekt verwendete Variablenname lautet string readonly YourNamespace.Properties.Settings.Default.CurrentLogFile, da Sie ihn im Anwendungsbereich platzieren. Der Benutzerbereich erlaubt das Überschreiben:

           1.0.0.0

MySection.Properties.Settings.Default.DEVICE_ID_VERSION = "1.5.0.0";
MySection.Properties.Settings.Default.Save();

0voto

Raama Punkte 1

Sie können die Lese- und Schreibmethoden von XML für diese Konfigurationsdatei verwenden, da die Grundarchitektur von app.config und XML gleich sind

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X