Попытка получить строку из файла App.config

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

Это мое app.config файл:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Con" value="User Id = *******;password=**;data source=  (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ******)(PORT = 1525))(CONNECT_DATA =(SERVER = DEDICATED)(SID = emtst)))"/>
  </appSettings>
</configuration>

И когда я пытаюсь прочитать это здесь:

  string connStr = ConfigurationManager.AppSettings["Con"];
  this.odacManager = new ODACManager(connStr);

Я просто получаю пустую строку. я использую System.Configuration,

Я также пытался использовать

ConfigurationManager.Connectionstring["Con"].ConnectionString

но это тоже не сработало.

2 ответа

Решение

Вы должны использовать <connectionStrings> элемент в вашем файле конфигурации:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <connectionStrings>
       <add name="Con" 
            connectionString="User Id=*******;password=**;data source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ******)(PORT = 1525))(CONNECT_DATA =(SERVER = DEDICATED)(SID = emtst)))"/>
   </connectionStrings>
</configuration>

и затем прочитайте это как:

string connStr = ConfigurationManager.ConnectionStrings["Con"].ConnectionString;

Обновить:

В.NET проекты библиотек классов не могут иметь свои собственные файлы конфигурации - они не будут использоваться и не будут оцениваться во время выполнения.

Если вашей библиотеке классов нужна какая-либо конфигурация, вам нужно поместить эту конфигурацию в хост-приложение. app.config (или же web.config), чтобы библиотека классов могла найти его там (и использовать его).

Пытаться

System.Configuration.ConfigurationSettings.AppSettings["Con"].ToString();
Другие вопросы по тегам