var connection = ConnectionFactory.GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);

这是我的app。config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

但是当我的项目运行时,这是我的错误:

对象引用未设置为对象的实例。


当前回答

我也有同样的问题。我的解决方案是由两个项目组成的。一个类库和一个引用类库项目的网站。问题是,我试图在我的类库项目中访问App.config,但系统正在Web中搜索。网站配置。我把连接字符串放在Web中。配置和…问题解决了!

主要原因是,尽管ConfigurationManager在另一个程序集中使用,但它正在运行的项目中进行搜索。

其他回答

似乎问题不在于引用,你得到的connectionstring为空,所以请确保你已经将该值添加到配置文件中,你正在运行的项目意味着首先启动/执行的主程序/库。

你可以这样做:

var connection = 
    System.Configuration.ConfigurationManager.
    ConnectionStrings["Test"].ConnectionString;

程序集还需要对System.Configuration.dll的引用

还要检查是否包含了系统。在您的引用下配置dll。没有它,您将无法访问系统中的ConfigurationManager类。配置名称空间。

我也有同样的问题。我的解决方案是由两个项目组成的。一个类库和一个引用类库项目的网站。问题是,我试图在我的类库项目中访问App.config,但系统正在Web中搜索。网站配置。我把连接字符串放在Web中。配置和…问题解决了!

主要原因是,尽管ConfigurationManager在另一个程序集中使用,但它正在运行的项目中进行搜索。

您可以使用此方法获取连接字符串

using System; 
using System.Configuration;

private string GetConnectionString()
{
    return ConfigurationManager.ConnectionStrings["MyContext"].ConnectionString;
}