无法从类库项目中的App.Config访问AppSettings
问题描述:
我想要使用以下语法访问appSettings,并且在许多网站项目中使用过它,但在类库项目中没有使用它。在这个类库项目中,我甚至无法访问AppSettings Keys。有什么方法可以从我的课程访问AppSettings Key吗?类库项目的app.config或项目结构是以不同的方式表现的吗?无法从类库项目中的App.Config访问AppSettings
Dim SharedDrive As String = ConfigurationManager.AppSettings("scriptsfolder")
<configuration>
<appSettings>
<add key="scriptsfolder" value="C:\BadTempScripts"/>
</appSettings>
我已经添加了Project Reference到System.Configuration并导入到我的类中。当我运行我的代码时,它说:“对象未设置为任何对象的实例”。
答
库在应用程序的上下文中运行,而不是由它自己运行。
您需要将配置放入将使用库的应用程序的.config
文件中。
因此,如果您的图书馆是lib.dll
,而申请是myApp.exe
,则应该使用.config
文件myApp.exe.config
。
作为使用.config
文件的替代方法,请考虑将配置作为依赖项传递给您的库类型。
你在你的代码中的特定错误,在你试图调用一个关键Scripts
在您的配置中有关键scriptsfolder
。
答
我有同样的问题,并且,正如Oded告诉我们的,一个库在应用程序的上下文中运行,但是我无法解决问题。最后,我用这个代码:
Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
Dim k as KeyValueConfigurationElement = config.AppSettings.Settings
("SVCInstalled")
If k <> Nothing Then
If k.Value <> Nothing Then
' Process your data next
注意,我是从C#转换上即时,所以原谅我,如果事情是错
使用两个不同的密钥的名字 - “脚本”和“scriptsFolder” – Ray 2012-03-01 15:51:02
我注意到,改变了,但错误仍然是一样的。我尝试不同的选择,并会尽快更新。谢谢。 – Mitul 2012-03-01 15:51:47