ConfigurationManager读取错误的文件 - Web.config而不是App.config

时间:2013-09-09 17:09:32

标签: asp.net-mvc configurationmanager

我正在研究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"];

我注意到key1返回的key2ConfigurationManager的值为null

调试时,我看到ConfigurationManager拉出项目A中原始Web.config的值(<appsettings></appsettings>部分的其他内容,我没有移到项目B)!

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

感谢。

1 个答案:

答案 0 :(得分:7)

不会加载驻留在类库项目中的

App.config(至少没有额外的努力),框架加载的唯一配置是客户端配置(即{ {1}}引用和使用类库的项目。

有关可能的解决方案,请参阅this answer