我有一个配置文件 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具有一个名为"file"的属性的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中得到异常消息“未识别的属性'file'。请注意,属性名称区分大小写。”
如果我手动删除文件属性,则配置文件将被正确加载。
有什么想法吗?
我如何避免在保存配置文件时编写文件属性。
谢谢