Schreiben appSettings in einer externen Datei

Habe ich eine config-Datei-app.exe.config und appSettings-Abschnitt hat so etwas wie dieses:

<configuration>
    <appSettings configSource="app.file.config" />
</configuration>

app.Datei.config-Datei hat, so etwas wie dieses:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
  <add key="var1" value="value 1" />
  <add key="var2" value="value 2" />
  <add key="var3" value="value 3" />
</appSettings>

Ich Bearbeiten müssen, var1, var2 und var3 an Laufzeit und ich habe den code wie folgt:

Configuration config = ConfigurationManager.OpenExeConfiguration("...path\app.exe);

config.AppSettings.SectionInformation.ConfigSource = "app.file.config";

config.AppSettings.Settings["var1"].Value = "value 11";
config.AppSettings.Settings["var2"].Value = "value 22";
config.AppSettings.Settings["var3"].Value = "value 33";
config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("appSettings");

Wenn ich config.Speichern.... die Datei app.Datei.config hat einen appSettings-Knoten mit einem Attribut "Datei". Dieses Attribut hat den Wert von app.Datei.config

<appSettings file="app.file.config">
<add key="var1" value="value 1" />
  <add key="var2" value="value 2" />
  <add key="var3" value="value 3" />
</appSettings>

Nun, wenn ich versuche, das laden der config-Datei habe ich eine Ausnahme mit der Meldung "Unbekanntes Attribut 'file'. Beachten Sie, dass Attribut-Namen sind case-sensitive." im app.Datei.config.

Wenn ich die Datei löschen, Attribut manuell in der Konfigurationsdatei richtig geladen ist.

Irgendwelche Ideen?

Wie Sie vermeiden können, zu schreiben, Datei-Attribut, wenn ich save config Dateien.

Dank

hat dies niemals getan, was passiert, wenn man die Linie ConfigSource = "app.Datei.config";
Kenny, ich verstehe dich nicht. Bitte, können Sie erklären, mehr im detail?
was passiert, wenn Sie entfernen Sie Ihre code "config.AppSettings.SectionInformation.ConfigSource = "app.Datei.config";"
Es ist ein Tippfehler in den ersten tag Recht? denn Sie schließen es.
Dank Vitor Canova. Es war ein Tippfehler

InformationsquelleAutor J19 | 2014-12-29

Schreibe einen Kommentar