Как обратиться к app.config для строки подключения при добавлении набора данных с помощью мастера набора данных? - PullRequest
2 голосов
/ 23 августа 2011

Каждый раз, когда я добавляю набор данных в свой проект библиотеки классов с помощью мастера, он дает мне возможность сохранить строку подключения в файле 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 для строки подключения ... которыйэто немного странно ... и в наборе данных веб-проекта не генерировать дизайнерские классы ...

Есть ли возможность выполнить действие по желанию?

1 Ответ

1 голос
/ 24 августа 2011

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

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

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

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

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

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

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

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