10

我正在研究 ASP.NET MVC 项目,并决定将一些功能提取到一个单独的类库项目中(在同一个解决方案中)。

我将一些元素<appSettings></appSettings>Web.config主项目(我们称之为项目A)移动到App.config类库项目(我们称之为项目B)中。我添加了对 System.Configuration.dll 的引用以访问项目 B 中的 ConfigurationManager。

示例 App.config 文件适用于项目 B,如下所示。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Key1" value="Value1"/>
    <add key="Key2" value="Value2"/>
  </appSettings>
</configuration>

我按如下方式访问这些设置(在项目 B 中)。

string key1 = ConfigurationManager.AppSettings["Key1"];
string key2 = ConfigurationManager.AppSettings["Key2"];

我注意到 forkey1key2返回的值ConfigurationManagernull.

调试时,我看到ConfigurationManager从项目 A 中的原始值中提取值(我没有移至项目 BWeb.config的部分中的其他整体)!<appsettings></appsettings>

这对我来说没有任何意义。有人可以告诉我我做错了什么,所以我可以访问 App.config 中的设置吗?

谢谢。

4

1 回答 1

8

App.config驻留在类库项目中的不会被加载(至少不是没有额外的努力),框架加载的唯一配置是客户端配置(即Web.config引用和使用您的类库的项目的配置)。

有关可能的解决方案,请参阅此答案

于 2013-09-09T17:22:46.960 回答