【发布时间】:2018-01-15 07:52:27
【问题描述】:
我可以像这样轻松地动态更新应用设置
System.Configuration.Configuration configDefault = null;
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = configFileName;
configDefault = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
configDefault.AppSettings.Settings[key].Value = "some value";
如何替换内存中现有的配置部分值,我不想更新 app.config 本身?当前 app.config 如下所示:
<SomeCustomSection>
<group name="mygroup" isenabled ="true">
<subscriber name="customer" log="true" isenabled="false"/>
<subscriber name="order" log="true" isenabled="false"/>
</group>
</SomeCustomSection>
我正在覆盖另一个配置文件中的配置值。
SomeConfiguration sectionClient = (SomeConfiguration)configClient.GetSection("SomeCustomSection");
SomeConfiguration sectionDefault = (SomeConfiguration)configDefault.GetSection("SomeCustomSection");
foreach (var groupClient in sectionClient.Groups)
{
var groupDefault = sectionDefault.Groups[groupClient.Name];
groupDefault.IsEnabled = groupClient.IsEnabled;
foreach(var sub in groupClient.Subscribers)
{
var subDefault = groupDefault.Subscribers[sub.Name];
subDefault.Log = sub.Log;
subDefault.IsEnabled = sub.IsEnabled;
}
}
我应该如何使用更新的部分更新配置对象configDefault?比如:
configDefault.Sections["SomeCustomSection"] = sectionDefault;
【问题讨论】:
标签: c#-4.0 configuration app-config