VB .NET (.NET 2.0) Конфигурация библиотеки классов - PullRequest
2 голосов
/ 10 декабря 2008

Я создал библиотеку классов в 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 ]

3 голосов
/ 10 декабря 2008

Если у вас есть приложение, которое использует вашу библиотеку под названием 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.config.

РЕДАКТИРОВАТЬ 2: Если вы установите строку подключения в разделе ConnectionStrings файла .exe.config или web.config, вы можете получить к нему доступ, используя:

ConfigurationManager.ConnectionStrings("MyConnectionString")
1 голос
/ 10 декабря 2008

У нас есть несколько библиотек с одинаковыми требованиями. Мы настроили его так, чтобы наша библиотека классов напрямую извлекала строку подключения из файла web.config приложения, которое ее использует. Когда вы говорите:

Передача строки подключения к библиотека классов с веб-страницы, которая использует его метод не вариант.

Теоретически, веб-страница не передает constr в качестве параметра, но библиотека классов просто напрямую берет ее из файла web.config.

1 голос
/ 10 декабря 2008

Конфиг-файлы являются специфическими для приложения. Таким образом, если ваша DLL используется приложением, app.config или web.config должны иметь записи, которые вы пытаетесь использовать в конфигурации DLL.

К сожалению, «Не вариант», вероятно, является правильным вариантом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...