Где хранить строку подключения для библиотеки классов в настольном приложении?Могу ли я использовать в app.config? - PullRequest
3 голосов
/ 27 ноября 2010

Я новичок в разработке настольных приложений и в настоящее время создаю настольное приложение с использованием многоуровневой архитектуры (пользовательский интерфейс, DAL, BLL).

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

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString)

Но это приводит к ошибке: "Ссылка на объект не установлена ​​для экземпляра объекта. "

Пожалуйста, помогите мне в этом.Спасибо за вашу поддержку и обмен.

Ответы [ 5 ]

4 голосов
/ 27 ноября 2010

Он должен храниться в app.config приложения Windows, а не в библиотеке классов. В основном, когда вы запускаете свой исполняемый файл, в той же папке, которая содержит параметры, должен быть файл с именем Foo.exe.config (где Foo.exe - итоговый исполняемый файл вашего приложения Windows).

Таким образом, в Visual Studio просто добавьте файл app.config в проект приложения WinForms и сохраните там настройки. В этом случае они будут успешно прочитаны вашей пользовательской библиотекой. Нет необходимости добавлять файл app.config в проект библиотеки классов, так как он никогда не будет использоваться.

3 голосов
/ 27 ноября 2010

Да, в настольном приложении вся конфигурация должна быть в app.config для этого приложения.Библиотеки классов, используемые этим настольным приложением, получат свои конфигурации из этого app.config по умолчанию.

Если эта строка выдает исключение:

ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString

, то, скорее всего, потому что нет <connectionStrings> запись с именем "connectionstring" существует.Проверьте на NULL:

if(ConfigurationManager.ConnectionStrings["connectionstring"] != null)
{
    string connStr = ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
 }
2 голосов
/ 27 ноября 2010

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

if(ConfigurationManager.ConnectionStrings["connectionstringName"] != null)
{  
      string connectionString = ConfigurationManager.ConnectionStrings["connectionstringName"].ConnectionString;
}
0 голосов
/ 27 сентября 2012

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

//// Read connection string from the text file
StreamReader sr = new StreamReader(System.Windows.Forms.Application.StartupPath @"C:\ConnectionString.txt");
connStr = sr.ReadLine();
0 голосов
/ 27 ноября 2010

Любые параметры конфигурации для приложения, будь то параметры приложения или строки подключения, должны быть помещены в файл app.config приложения. В случае вашего настольного приложения вы можете добавить файл «Конфигурация приложения» или «app.config» и поместить туда строку подключения. Любая зависимость для этого приложения ... например библиотека классов, такая как DAL, извлечет необходимое ей значение для строки подключения из файла * .config приложения.

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