我有一个配置文件app.exe.config和appSettings部分有这样的:
<configuration> <appSettings configSource="app.file.config" /> </configuration>
<?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节点,其属性为“file”.此属性具有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中.
有任何想法吗?
谢谢
解决方法
使用外部配置文件对于应用程序是透明的,
这部分是o.k
</configuration> <appSettings configSource="app.file.config" /> </configuration>
还有这个:
<?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>
将代码更改为:
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath); config.AppSettings.Settings["var1"].Value = "value 11"; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");
引用外部配置文件对应用程序是透明的,
所以你不必直接打电话.您可以使用配置管理器中的默认appSetting部分.
祝好运
原文地址:https://www.jb51.cc/csharp/97938.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。