Как обратиться к app.config за строкой подключения при добавлении набора данных с помощью мастера набора данных?

Всякий раз, когда я добавляю набор данных в свой проект библиотеки классов с помощью мастера, он дает мне возможность сохранить строку подключения в файле app.config, и после выбора параметра он сохраняет строку в файле, но когда я проверяю конструктор набора данных, он всегда сохраняет ее в объекте собственности проекта:

private void InitConnection() {
            this._connection = new global::System.Data.SqlClient.SqlConnection();
            this._connection.ConnectionString = global::BaseClassLibrary.Properties.Settings.Default.DBConnectionString;
        }

и это не так полезно, потому что, когда я пытаюсь использовать эту dll проекта и переопределить строку подключения, написав ее в web.config или app.config ... она не ссылается на нее ...

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

Могу ли я выполнить действие желания?


person Safran Ali    schedule 23.08.2011    source источник


Ответы (1)


Тип «Свойства» представляет собой оболочку для настроек приложения и конкретных пользователей, как описано здесь.

Похоже, что вы пытаетесь получить параметры конфигурации из сборки библиотеки (.dll), а не параметры конфигурации из приложения / сайта, ссылающегося на вашу библиотеку. Я предполагаю это на основании того факта, что вы используете это свойство:

global::BaseClassLibrary.Properties.Settings.Default.DBConnectionString;

В ситуациях, когда сборке, на которую имеется ссылка, требуется настройка конфигурации из запущенного приложения / сайта, я обычно:

  1. Создайте статический тип AppNameApplication в основной библиотеке (то есть сборке с небольшим количеством других настраиваемых зависимостей или без них)
  2. Создайте свойства либо для конфигурации в целом (при использовании настраиваемого ConfigurationSection), либо для каждого необходимого параметра.
  3. Инициализируйте этот статический класс в начале приложения (main или Global.Applicaton_Start)
  4. Ссылка на AppNameApplication из типов сборки библиотеки, чтобы получить доступ к этим параметрам конфигурации.

Обратите внимание, что этот статический тип должен быть определен в одной из ваших основных библиотек, потому что у вас не может быть циклической ссылки: Приложение - Библиотека - Приложение.

Надеюсь это поможет.

person akmad    schedule 24.08.2011