打开非web.config文件作为配置对象

时间:2013-07-16 21:15:57

标签: c# .net asp.net-mvc-3 config

所以我的情况是我有一个asp.net MVC项目,我希望将大多数站点特定的设置移动到不是Web.config的配置文件。这样做的原因是为了避免在更改设置时回收应用程序池,但我想保留很多已有的配置代码。所以我一直试图想出一种方法来将配置文件作为配置对象加载,而不是随应用程序加载的标准Web.config。我一直在查看一些配置管理器类来加载配置文件,但它们似乎都想要一个类可以找到机器,Web或应用程序配置的路径。那么可以将.config文件(不是web,app或machine)加载为Configuration对象吗?它看起来应该很简单,因为它只是XML,但我似乎错过了一些东西。

1 个答案:

答案 0 :(得分:0)

配置更改导致重新启动应用程序域

对Web.config文件中的配置设置的更改会间接导致应用程序域重新启动。此行为是通过设计发生的。您可以选择使用configSource属性来引用在进行更改时不会导致重新启动的外部配置文件。有关更多信息,请参阅由Section Elements继承的General Attributes中的configSource。 MSDN

在你的web.config中:

<system.net>
   <myconfigSection>
       <myConfigEntry configSource="MyExtraConfig.config" />
   </myconfigSection>
</system.net>

在MyExtraConfig.config中:

<?xml version="1.0" encoding="utf-8" ?>
<myConfigEntry>
   <myConfigValue1 a="1" b="2" c="3" />
   <myConfigValue2 d="4" e="5" f="6""/>
</myConfigEntry>