ConfigurationManager не указывает на исправление app.config

Я пытаюсь использовать ConfigurationManager для получения строки подключения из вызова проекта FileShareAccessLibrary.

Вот код, который я пишу для этого:

ConfigurationManager.ConnectionStrings["FileShareAccessLibrary"].ConnectionString

Это содержимое app.Config.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections></configSections>
  <connectionStrings>
    <add name="FileShareAccessLibrary" connectionString="......"
      providerName="System.Data.SqlClient" />
    <add name="FileShareAccessLibrary.Properties.Settings"
      connectionString="..."
      providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

Когда я запускаю свое приложение, я получаю NullReferenceException, потому что ConfigurationManager.ConnectionStrings["FileShareAccessLibrary"] возвращает значение null.

Во время отладки я заметил, что ни одна из двух строк подключения не хранится внутри ConfigurationManager.ConnectionStrings, поэтому я решил, что ConfigurationManager указывает на другой файл.

В моем проекте другого app.config файла нет.

Что-то я здесь делаю не так? Почему ConfigurationManager не получает мою строку подключения?


person aleczandru    schedule 03.09.2013    source источник
comment
WebConfigurationManager.ConnectionStrings [FileShareAccessLibrary] .ToString ()   -  person Sasidharan    schedule 03.09.2013
comment
Что это за проект? Есть ли файл .config в выходном каталоге при сборке проекта?   -  person Rowland Shaw    schedule 03.09.2013
comment
добавьте тег ‹clear /› внутри тега ‹connectionStrings› перед другими тегами и проверьте снова.   -  person VahiD    schedule 03.09.2013
comment
Ваш фактический файл app.config называется yourapplication.exe.config? app.config копируется Visual Studio при компиляции в соответствии с именем исполняемого файла плюс .config.   -  person Steve B    schedule 03.09.2013
comment
Проект представляет собой библиотеку классов C #.   -  person aleczandru    schedule 03.09.2013
comment
файл app.config называется app.config, имя проекта - FileShareAccessLibrary, решение - N.Common   -  person aleczandru    schedule 03.09.2013
comment
Это не работает, потому что вы пытаетесь получить доступ к app.config своего приложения из библиотеки классов. Ознакомьтесь с stackoverflow.com/questions / 690313 /   -  person Dutts    schedule 03.09.2013


Ответы (1)


Если ваш проект FileShareAccessLibrary является библиотекой классов, а не приложением Windows Forms или консольным приложением, вам нужно будет переместить строки подключения (и настройки приложения, если они у вас есть) из файла конфигурации FileShareAccessLibrary в файл конфигурации приложения (приложений). которые ссылаются на DLL FileShareAccessLibrary.

person Teppic    schedule 03.09.2013
comment
Что, если я хочу провести несколько интеграционных тестов (в отдельном проекте библиотеки классов)? Куда мне поместить строку подключения для этих интеграционных тестов? - person Prokurors; 03.09.2016