2009-12-29 62 views
3

我已经拥有它的App.config一些配置设置的C#类库我访问他们C#读配置设置

Method1() 
{ 
string connectionString = ConfigurationManager.AppSettings["ConnectionString"]; 
} 

但是,当我打电话方法1()从我的ASP Web项目B,它无法在类库中找到配置设置A

任何想法发生了什么?

+1

对于Web应用程序,请使用“WebConfigurationManager”而不是ConfigurationManager – 2009-12-29 17:08:41

回答

4

.Net运行时创建的整个配置管理结构是特定于进程的。不是特定装配。这意味着每个正在运行的可执行文件都会获得一个app.config一个Web项目获取一个web,config(实际上一个web项目可以有多个web.configs),但程序集不能有自己的app.configs,它们可以有代码来读取配置文件中的配置设置, (其中使用程序集作为WinForms应用程序中的参考,那么它可以在MyWinformsApplication.exe.config中看到配置设置;在ASP.Net Web应用程序中使用程序集,然后它可以看到confiog设置在Web应用程序的web.config中......

2

必须将配置设置复制到您的web.config。本质上,每个项目只有一个ConfigurationManager读取的默认配置文件。

0

它正在寻找您的web项目中的配置设置。

2

库没有自己的配置文件。应该在使用该库的exe中定义配置设置

2

我相信你可以使用OpenExeConfiguration做到这一点:

string exePath = "<full path and name of the app .exe file>"; 

System.Configuration.Configuration otherConfig = 
    ConfigurationManager.OpenExeConfiguration(exePath); 

您可以将其他.exe的路径放在Web应用程序的web.config(例如,appSettings部分)中,然后从那里读取,这比在此处对其进行硬编码更好。

查看的appSettings在配置文件:

AppSettingsSection otherAppSettings = otherConfig.AppSettings; 

MSDN page可能的帮助。