чтение файла web.config из библиотеки классов - PullRequest
2 голосов
/ 08 декабря 2011

у меня есть два проекта 1) библиотека классов без интерфейса, просто API 2) веб-приложение

из веб-приложений я буду называть библиотеку классов API

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

 public static string readingDB
        {
            get
            {
                string result = null;
                result = ConfigurationManager.AppSettings["employeeDB"]; //conn string
                if (!string.IsNullOrEmpty(result))
                {
                    return result;
                }
                else
                {
                    return "";  //???? THROW EXCEPTION???
                }
            }
        }

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <applicationSettings>
    <add name="employeeDB" connectionString="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>
  </applicationSettings>
  <customErrors mode="On"/>
</configuration>

любая помощь?

Ответы [ 5 ]

10 голосов
/ 08 декабря 2011

Ваш синтаксис неправильный, он должен быть

<configuration>  
  <appSettings>  
    <add key="employeeDB" value="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/> 
  </appSettings>  
</configuration>  

или более правильно, поскольку это строка подключения,

<configuration>  
  <connectionStrings>  
    <add name="employeeDB" connectionString="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>  
  </connectionStrings>  
</configuration>  

, которая будет считываться ConfigurationManager.ConnectionStrings["employeeDB"]

1 голос
/ 13 августа 2014

Кроме того, сборка System.Configuration не добавляется автоматически в библиотеку классов.

  1. Щелкните правой кнопкой мыши проект в обозревателе решений
  2. Нажмите кнопку Добавить> Ссылка
  3. Проверьте System.Configuration на вкладке Сборки> Каркас
1 голос
/ 08 декабря 2011

Ваш тег неправильный .. это должны быть 'appSettings', а не 'applicationSettings'

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add name="employeeDB" connectionString="Data Source=servername;Initial Catalog=employee;Persist Security Info=True;User ID=userid;Password=password;"/>
  </appSettings>
  <customErrors mode="On"/>
</configuration>
0 голосов
/ 16 ноября 2013

только что увидел сообщение, и у меня возникла та же проблема, но у меня есть способ .. добавить System.Web.Configuration ссылку на вашу библиотеку классов prj, тогда

ConnectingString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

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

0 голосов
/ 08 декабря 2011

appSettings должно быть как

<appSettings>
    <add key="employeeDB" value="xxxx" />
</appSettings>
...