VB .NET(.NET 2.0)类库配置

时间:2008-12-10 15:54:27

标签: vb.net configuration class-library

我在VB .NET中创建了一个类库。库中的某些代码连接到数据库。我想创建一个包含连接字符串的配置文件。

我创建了一个“Settings.settings”文件并将连接字符串存储在那里。

当构建具有设置文件的类库时,它会生成“.dll.config”文件,该文件具有在设置文件中定义的键值对。

问题是当我更改“.dll.config”文件中的连接字符串时,库不会引用这些更改。我仍然需要重新编译类库,然后覆盖我在.dll.config文件中的更改。

我需要能够动态更改连接字符串,而无需重新编译库。

VB.NET类库(.NET 2.0)中是否有一种机制可以让我这样做?

将连接字符串从使用其方法的网页传递到类库不是一种选择。

我在下面列出了一个示例,这是我将如何访问该字符串。

    Public Function getsettings(ByVal Setting As String) As String
        If Setting = "Demo" Then
            Return My.Settings.Demo
        Else
            Return My.Settings.Live
        End If
    End Function

3 个答案:

答案 0 :(得分:3)

如果您的应用程序使用名为MyApp的库,则MyApp.exe.config中定义的连接字符串将可供您的库使用。一般来说,客户端程序应该设置配置环境,而不是库。

If GetApplicationSetting("connectionString") Is Nothing Then
    Throw New Exception("Could not retrieve connection string from .config file")
Else
    Return ConfigurationManager.AppSettings.Item("connectionString")
End If

确保已加载System.Configuration框架以访问ConfigurationManager。

编辑1:如果您在Web应用程序中使用它,请在web.config中设置连接字符串。

编辑2:如果在.exe.config或web.config的ConnectionStrings部分设置连接字符串,则可以使用以下命令访问它:

ConfigurationManager.ConnectionStrings("MyConnectionString")

答案 1 :(得分:1)

配置文件特定于应用程序。因此,如果应用程序使用了您的DLL,则app.config或web.config需要包含您尝试在DLL配置中使用的条目。

不幸的是,“不是一个选项”可能是正确的选择。

答案 2 :(得分:1)

我们有多个具有相同要求的库。我们进行了设置,以便我们的类库直接从正在使用它的应用程序的web.config文件中检索连接字符串。当你说:

  

将连接字符串传递给   来自网页的类库   使用它的方法不是一种选择。

理论上,网页没有将con str作为参数传递,但是类库只是直接从web.config文件中获取它。