reading web.config from class library

只愿长相守 提交于 2019-12-02 00:25:38

问题


i have two project 1) class library with no inteface just an api 2) web application

from web apps i will be calling the class library api

so i have all the web.config settings in the web application but when i debug it always return me null value and here is the code snippit:

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

i have also tried, creating a new app.config in the class library project and have the same appsettings there but does not work...

<?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>

any help?


回答1:


your syntax is incorrect, it should be

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

or more correctly, since it's a connection string,

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

which would be read by ConfigurationManager.ConnectionStrings["employeeDB"]




回答2:


Your tag is wrong..it should be 'appSettings' not '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>



回答3:


Also, the System.Configuration assembly is not automatically added to a class library.

  1. Right click on the project in the Solution Explorer
  2. Click Add > Reference
  3. Check System.Configuration in the Assemblies > Framework tab



回答4:


just saw the post and i had same problem but i got a way.. add System.Web.Configuration reference to your class library prj then

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

Hope this will help




回答5:


appSettings is should be like

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


来源:https://stackoverflow.com/questions/8422072/reading-web-config-from-class-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!