【发布时间】:2011-01-24 06:16:27
【问题描述】:
存在与reading settings from a separate config file 和其他类似问题有关的问题,但我的问题是特定于应用程序属性设置(即<MyApplication.Properties.Settings> - 请参阅下面的 XML 文件)以及如何动态加载它们。我尝试了this post 中的方法,该方法涉及刷新主配置文件的整个 appSettings 部分,但我的改编引发了异常,因为我没有替换 appSettings 部分:
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
// Have tried the other ConfigurationUserLevels to no avail
config.AppSettings.File = myRuntimeConfigFilePath;
config.Save(ConfigurationSaveMode.Modified); // throws ConfigurationErrorsException
ConfigurationManager.RefreshSection("userSettings");
ConfigurationErrorsException.Message 是“根元素必须与引用文件的部分的名称相匹配,‘appSettings’(C:\myFile.xml 第 2 行)。”文件是:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<userSettings>
<MyApplication.Properties.Settings>
<setting name="SineWaveFrequency" serializeAs="String">
<value>6</value>
</setting>
<setting name="SineWaveAmplitude" serializeAs="String">
<value>6</value>
</setting>
</MyApplication.Properties.Settings>
</userSettings>
</configuration>
有没有办法将此文件中的值导入MyApplication.Properties.Settings.Default 类,让框架像在应用程序启动时加载配置文件时那样处理所有 XML 反序列化?
【问题讨论】:
-
如果您对动机感到好奇,请参阅我之前的问题:How to use .NET configuration files (app.config, settings.settings) to save and restore all application data?。那个时候还不知道app.config和user.config有什么区别,但是我肯定在找修改user.config的解决方案。
标签: .net persistence configuration-files settings