5

我有一个使用类库的 dll 的 Web 应用程序。我无法访问app.config类库中的值

我如何尝试访问app.config

ConfigurationSettings.AppSettings["conStr"].ToString();

这是返回一个空值

此外,当我尝试使用ConfigurationManager它时,它说未找到或缺少程序集参考。

还添加了使用 System.Configuration 。

4

3 回答 3

9

您必须将AppSettings值放在web.config应用程序的内部,因为它会覆盖app.config类库中的。

System.Configuration在类库项目中添加对命名空间的引用,它们会从文件中获取您期望的值web.config,而不是从app.config文件中获取。

于 2012-11-20T13:19:45.200 回答
2

在您的项目中添加对库的引用System.Configuration,然后像这样获取您的密钥

ConfigurationManager.AppSettings["conStr"]

请注意,Web 应用程序将搜索web.config文件而不是app.config!

于 2012-11-20T13:12:51.553 回答
0

AMembers 的答案应该可以让你跑步。但我喜欢告诉(“告诉;不要问”)我的图书馆应该在哪里连接。不要让你的库找到它的连接字符串,而是让调用代码提供它:

var myLib = new MyLib(ConfigurationManager.AppSettings["conStr"]);

这样,无论您的配置是否在 web.config/app.config/custom config/registry/.ini 文件中,您的库都不在乎。

于 2012-11-20T13:17:36.077 回答