我正在创建一个 WPF 应用程序,具有经典架构:UI 层、业务逻辑层和基础架构层。我决定将配置拆分为两个文件:app.config 文件,包含常见的应用程序配置,以及 dll.config,包含在 DbContext 中用于域模型存储的连接字符串。第二个 .config 文件应该贴在业务逻辑 DLL 上,而第一个文件贴在相应的 UI 可执行文件上(会有更多的 UI 有它自己的配置)。
应用程序配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<enterpriseLibrary.ConfigurationSource selectedSource="Winter DAL Configuration">
<sources>
<add name="Winter DAL Configuration" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
filePath="dll.config" />
</sources>
</enterpriseLibrary.ConfigurationSource>
</configuration>
dll.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="WinterContext" />
<connectionStrings>
<add name="WinterContext" connectionString="Data Source=Winter.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
</configuration>
现在,当我启动应用程序时,DbContext 抛出一个异常,说它找不到具有指定名称的连接字符串。如果我将连接字符串从 dll.config 移动到 app.config - 一切正常。
也许我必须以某种方式显式加载配置?或者?..我做错了什么?
提前谢谢!