我正在研究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"];
我注意到ConfigurationManager返回的key1和key2的值为null.
在调试时,我看到ConfigurationManager从项目A中的原始Web.config中拉取值(另一个在< appsettings>< / appsettings>部分中进入,我没有移动到项目B)!
这对我没有任何意义.有人能告诉我我做错了什么,所以我可以访问App.config中的设置吗?
谢谢.
解决方法
不会加载驻留在类库项目中的App.config(至少不需要额外的努力),框架加载的唯一配置是客户端配置(即引用和使用类库的项目的Web.config) ).
请参阅this answer以获取可能的解决方