无法从类库项目中的App.Config访问AppSettings

时间:2012-03-01 15:44:00

标签: vb.net app-config

我正在尝试使用以下语法访问appSettings,我之前在我的许多网站项目中使用过它,但不是在类库项目中。在这个类库项目中,我甚至无法访问AppSettings键。有什么方法可以从我的班级访问AppSettings Key吗?类库项目的app.config或项目结构是否以不同的方式运行?

 Dim SharedDrive As String = ConfigurationManager.AppSettings("scriptsfolder")

<configuration>
  <appSettings>
    <add key="scriptsfolder" value="C:\BadTempScripts"/>
  </appSettings>

我已经在System.Configuration中添加了Project Reference并在我的类中导入。当我运行我的代码时,它说:“对象没有设置为任何对象的实例”。

2 个答案:

答案 0 :(得分:5)

库在应用程序的上下文中运行,而不是单独运行。

您需要将配置放在将使用该库的应用程序的.config文件中。

因此,如果您的资料库为lib.dll而应用程序为myApp.exe,则应使用.config文件myApp.exe.config

作为使用.config文件的替代方法,请考虑将配置作为依赖项传递给库类型。


您的代码中存在特定错误,因为您尝试拨打密钥Scripts,其中您的配置中包含密钥scriptsfolder

答案 1 :(得分:1)

我遇到了同样的问题,并且,正如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#,如果出现问题,请原谅我