修改通过“file”属性引用的自定义配置文件中的appSettings

时间:2015-11-17 14:30:53

标签: c# asp.net-mvc web-config appsettings

在Web.config的appSettings部分中,使用file属性引用自定义配置文件。目标是有可能修改自定义配置中的某些应用程序设置,而不会导致重新启动应用程序。

  

的Web.config

<appSettings file="CustomAppSettings.config">
    <add key="key1" value="val2" />
</appSettings>
  

CustomAppSettings.config

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
    <add key="customKey1" value="custVal2"/>
</appSettings>

以下代码不起作用。它将值保存到 Web.config ,但期望将其保存到 CustomAppSettings.config ,因为它不会重新启动应用程序(Source)。

var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save();

这也行不通。

var configuration = WebConfigurationManager.OpenWebConfiguration("~/CustomAppSettings.config");

我做错了什么?有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

使用 configSource 代替文件

<appSettings configSource="CustomAppSettings.config" />

在保存时使用 ConfigurationSaveMode.Minimal

var configuration = WebConfigurationManager.OpenWebConfiguration("~/");
configuration.AppSettings.Settings[key].Value = value.ToString();
configuration.Save(ConfigurationSaveMode.Minimal);