0
我可以很容易地更新應用程序設置動態像C#更新自定義配置部分編程
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;