我有一个类库,它具有以下代码的功能:
this.apikey = ConfigurationManager.AppSettings["ApiKey"];
当我在控制台应用程序中调用此函数时,它说 AppSettings 没有键。它还指出连接字符串是aspnet ...而我的是sqlserver。因此,即使我在库函数中调用它,它肯定不会读取我的库应用程序配置。
这是正常的还是我做错了什么?
我希望避免制作和解析 xml 并重新发明轮子。
谢谢
这是正常的还是我做错了什么?
这是正常的,你做错了什么。
库通常没有自己的配置 - 它受运行应用程序的配置的影响。
如果您将您的appSettings
和添加connectionStrings
到应用程序配置中,一切都将起作用。
换句话说,当加载应用程序并加载它使用的库时,会读取应用程序配置 - 不会读取其他配置文件。调用 的静态方法时ConfigurationManager
,加载的配置是有效的。
有一些方法可以加载特定的配置文件,但这不是默认行为。
你肯定在某些地方错了。可能是您将密钥写在与appSettings
. 只需检查它,如果正确,则需要重新发明轮子,如下所示:
XDocument.Load(HttpContext.Current.Server.MapPath("~/web.config"));
请务必在使用之前将System.Web
命名空间添加到您的项目中HttpContext