C#读取配置设置

时间:2009-12-29 16:44:55

标签: c# configuration app-config configurationmanager

我有一个C#类库A,它在App.config中有一些配置设置我用

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

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

知道这里发生了什么吗?

5 个答案:

答案 0 :(得分:4)

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

中看到confiog设置

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

答案 3 :(得分: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可能会有所帮助。

答案 4 :(得分:0)

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