首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在运行时更改默认app.config

在运行时更改默认app.config
EN

Stack Overflow用户
提问于 2011-05-27 17:59:33
回答 8查看 84.1K关注 0票数 134

我有以下问题:

我们有一个加载模块(附加组件)的应用程序。这些模块可能需要app.config中的条目(例如WCF配置)。因为模块是动态加载的,所以我不希望在应用程序的app.config文件中包含这些条目。

我想做的事情如下:

  • 在内存中创建一个新的app.config,其中包含模块中的配置部分
  • 告诉我的应用程序使用新的app.config

注意:我不想覆盖默认的app.config!

它应该透明地工作,这样例如ConfigurationManager.AppSettings就可以使用这个新文件。

在评估这个问题时,我提出了与这里提供的解决方案相同的解决方案:Reload app.config with nunit

不幸的是,它似乎什么也做不了,因为我仍然从普通的app.config中获取数据。

我使用以下代码对其进行了测试:

代码语言:javascript
复制
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);

var combinedConfig = string.Format(CONFIG2, CONFIG);
var tempFileName = Path.GetTempFileName();
using (var writer = new StreamWriter(tempFileName))
{
    writer.Write(combinedConfig);
}

using(AppConfig.Change(tempFileName))
{
    Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
    Console.WriteLine(Settings.Default.Setting);
}

它打印相同的值两次,尽管combinedConfig包含普通app.config之外的其他值。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6150644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档