4

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

配置配置 = GetConfigFromMyDatabase(...);

ServiceModelSectionGroup serviceModel = ServiceModelSectionGroup.GetSectionGroup(config);

有没有办法在不编写临时 app.config 文件的情况下做到这一点?

4

3 回答 3

4

如何使用:

System.Configuration.ConfigurationManager.OpenExeConfiguration(string exePath)

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

于 2009-04-21T16:22:55.820 回答
1

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

ServiceHost 有一个可以覆盖的 ApplyConfiguration 方法。你可以从任何你喜欢的地方加载配置。

有关概述该技术的相关文章,请参见此处

于 2009-05-12T16:13:23.107 回答
-1

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

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

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

以这种方式实现它是一个非常巧妙的解决方案,并且效果很好(以前使用过)。

于 2009-04-22T11:42:34.257 回答