在类库的配置文件中包含ConnectionStrings

时间:2014-09-05 20:35:23

标签: c# .net configuration web-config app-config

这里有很多次问过这个问题,但我似乎无法对我的案例应用任何答案。所以我们再来一次。

我有两个项目ProjectAProjectBProjectA 是一个类库并使用实体框架(默认情况下)将其模型设置写入App.config文件。另一方面,ProjectB是一个具有自己的Web.config文件和引用ProjectA的可执行文件,以满足其数据访问需求。当然,问题是在运行时,ProjectB的web.config被读取,因为它是"正在执行的程序集",这意味着我需要包括ProjectA的web.config中ProjectB的app.config中的所有连接字符串。

我真的不喜欢手动复制这些连接字符串的想法。我想知道是否有方法告诉ProjectB的web.config将其connectionStrings部分替换为app.config ProjectA部分}}。所以理论上,我从这样的事情开始:

ProjectA(App.config):

<configuration>
  <connectionStrings>
    <add name="MyModelContext" connectionString="blahblah" />
  </connectionStrings>
</configuration>

ProjectB(Web.config):

<configuration>
 <connectionStrings>
 </connectionStrings>
<configuration>

在运行时构建项目之后:

ProjectB(Web.config):

<configuration>
  <connectionStrings>
     <add name="MyModelContext" connectionString="blahblah" />
  </connectionStrings>
<configuration>

是否支持此功能?

1 个答案:

答案 0 :(得分:0)

您可以使用configSource attribute将任何app.config / web.config部分替换为外部文件。

web.config,其中connectionStrings.config是ProjectA的app.config connectionStrings部分:

<connectionStrings configSource="connectionStrings.config" />

configSource是相对于web.config文件的路径,因此您可以将其指向应用程序中的任何文件,例如: config\connectionStrings.config