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