.NET中的共享配置文件

Rir*_*iri 8 .net asp.net-mvc configuration windows-services

我有一个包含Web和Windows NT服务应用程序的解决方案.这些当然是两个不同的项目,但在同一个解决方案中.然而,他们分享了许多相同的配置.

目前,我在web.config和app.config文件中都有相同的值.这开始变得混乱,我想为解决方案中的两个应用程序提供共享配置文件.

  • 如果配置不在Web应用程序的根级别,那么Web应用程序是否存在问题?这里有限制吗?
  • 如果我不使用web.config,是否会松开Web应用程序的缓存和自动回收
  • 如上所述共享配置通常是个坏主意吗?

mar*_*c_s 9

好吧,你可以将配置的某些部分"外部化"为单独的.config文件,并在两个地方使用它们.

例如,您可以将连接字符串设置外部化,如下所示:

<connectionStrings configSource="connectionStrings.config" />
Run Code Online (Sandbox Code Playgroud)

然后有这样的"connectionString.config"文件:

<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
  <add name="ConfigurationDatabase" 
       connectionString="server=.;Integrated Security=true;database=test"/>
  <add name="TestDatabase" 
       connectionString="server=TEST;Integrated Security=true;database=test"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

基本上,任何ConfigurationSection都有这样的"configSource"设置,允许您指定要使用的外部文件.

这样,您就可以共享两个配置文件的公共部分.