c# – 在外部文件中编写appSettings

前端之家收集整理的这篇文章主要介绍了c# – 在外部文件中编写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节点,其属性为“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部分.

祝好运

猜你在找的C#相关文章