如何从自定义位置读取app.config,即从.NET中的数据库读取

时间:2009-04-21 09:33:59

标签: wcf configuration location

我试图在我的自定义ServiceHost中覆盖ApplyConfiguration方法,以从数据库而不是app.config中读取配置。理想情况下,我希望能够做到这样的事情:

配置config = GetConfigFromMyDatabase(...);

ServiceModelSectionGroup serviceModel = ServiceModelSectionGroup.GetSectionGroup(config);

如果没有编写临时app.config文件,有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

如何使用:

System.Configuration.ConfigurationManager.OpenExeConfiguration(string exePath)

那应该让你打开一个任意的app.config文件。

答案 1 :(得分:1)

如果您正在编写自定义ServiceHost,则不需要单独的AppDomain。

ServiceHost具有您可以覆盖的ApplyConfiguration方法。您可以从任何地方加载配置。

See here有关概述该技术的相关文章。

答案 2 :(得分:-1)

尽管您不想编写临时配置文件,但最好的方法是在单独的AppDomain中托管您的服务。

在创建AppDomain之前,从数据库中获取配置并将其写入文件系统,然后在创建AppDomain时将其指向您从数据库中检索的临时配置文件,作为其配置源。

当然,数据库中的配置要么必须是完整的app.config文件,要么必须将其与某种模板配置文件合并,该文件中包含任何其他非serviceModel配置位。你的应用程序的其余部分。

以这种方式实现它是一个非常简洁的解决方案,并且运行良好(之前已经使用过它)。