在app.config中添加连接字符串

我在C#中有一个类库,它有几个类和一个app.config。 我已将ConnectionString放在app.config中,如下所示:

   

我尝试在项目的其中一个类中打开连接字符串,如下所示:

  string connectionString = ConfigurationManager.ConnectionStrings["TRN_DB"].ConnectionString.ToString(); SqlConnection con = new SqlConnection(connectionString); con.Open(); 

但它给了我一个错误:

{“你调用的对象是空的。”}

当我在web.config中的web项目中使用相同的方式时,连接字符串是正确的,有人知道如何在app.config中访问它吗? 我也是这样用的:

  string connectionString = System.Configuration.ConfigurationSettings.AppSettings["TRN_DB"]; 

这个给我这个错误:

此方法已过时,已被System.Configuration取代!System.Configuration.ConfigurationManager.Appsettings

为了说清楚,我的解决方案中没有任何其他项目,因为我希望我的类库能够独立工作。 我无法将web项目和web.config应用于此。 所以我应该将连接字符串添加到app.config并访问它或者将web.config添加到我的类库项目中。 我不确定哪一个是可行的。

如果使用类库运行Web项目,请在Web项目中将连接字符串添加到web.config

如果您正在运行带有类库的Console / WinForm项目,请在Console / WinForm项目中将连接字符串添加到app.config

修改库项目中的配置将不适用于您的情况。

据我所知,你有一个类库,其中包含一个带有连接字符串的配置文件,并在另一个应用程序中引用该库。 问题是app.config(或web.config)是相对于正在执行的应用程序。

假设您的类库名为Shared.dll,并且具有Shared.dll.config和另一个名为Application with Application.exe.config的应用程序(假设它是一个控制台应用程序)。 运行该应用程序时,使用的app.config将是Application.exe.config。

如果您尝试在此应用程序中尝试访问名为TRN_DB的连接字符串,它将在应用程序的配置文件中查找TRN_DB的连接字符串并返回null(因此引用exception)。

在Windows窗体中,应用程序总是在引用中添加对System.Configuration的引用,然后在代码页中using System.Configuration添加,然后使用如下连接字符串:

 string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; 

我遇到了类似的问题,问题是我需要将System.Configuration添加到References。

我想用System.Configuration添加; 该类可以做到这一点,但我必须在引用之前将System.Configuration添加到引用。

连接字符串的东西需要在主exe项目的app.config中,否则你需要手动加载它。

正如其他人所说,库将使用配置文件来执行应用程序。

我想补充一点建议。 一个选项需要考虑,因为(在我看来)有点夸张和专业的触摸是创建一个自定义配置部分。 这样您就可以对库的设置进行分组,而不会对您的库使用哪些设置产生任何疑问: http : //msdn.microsoft.com/en-us/library/2tw134k3(v = vs.100)。 ASPX