Написать appSettings во внешний файл
У меня есть файл конфигурации app.exe.config и раздел appSettings имеет что-то вроде этого:
<configuration>
<appSettings configSource="app.file.config" />
</configuration>
Файл app.file.config имеет что-то вроде этого:
<?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>
Мне нужно отредактировать var1, var2 и var3 во время выполнения, и у меня есть такой код:
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");
Когда я запускаю config.Save .... в файле app.file.config есть узел appSettings с атрибутом «файл». Этот атрибут имеет значение для app.file.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>
Теперь, если я пытаюсь загрузить файл конфигурации, у меня возникает исключение с сообщением «Нераспознанный атрибут« файл ». Обратите внимание, что имена атрибутов чувствительны к регистру». в app.file.config.
Если я удаляю атрибут файла вручную, файл конфигурации загружается правильно.
Есть идеи?
Как можно избежать записи атрибута файла, когда я сохраняю файлы конфигурации.
Спасибо