我正在研究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
返回的key2
和ConfigurationManager
的值为null
。
调试时,我看到ConfigurationManager
拉出项目A中原始Web.config
的值(<appsettings></appsettings>
部分的其他内容,我没有移到项目B)!
这对我没有任何意义。有人能告诉我我做错了什么,所以我可以访问App.config中的设置吗?
感谢。
答案 0 :(得分:7)
App.config
(至少没有额外的努力),框架加载的唯一配置是客户端配置(即{ {1}}引用和使用类库的项目。
有关可能的解决方案,请参阅this answer。