构造函数上的Null引用异常

时间:2018-10-16 17:43:24

标签: c# dll .net-standard

我正在另一个.net标准项目中使用一个.net标准项目。我将其打包为nuget包,并将dll包含在我的项目中。当我的项目调用dll进行某些工作时,它首先将一个对象新闻化

var account = new Data.Account();

“帐户”类如下所示:

internal class Account : Base
{
    const string NAME = "test";

    internal Account() { }
}

基类如下:

public abstract class Base
{
    protected string connectionString;

    public Base()
    {
        connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString;
    }
}

但是,当尝试更新此类时,会引发异常:

   at xxx.xx.Data.Base..ctor() in xxx\xxx\Data\Base.cs:line 11 

第11行只是public Base()构造函数

我已将nuspec文件中包含了pdb,以便可以调试到dll中,但是这样做没有提供任何其他上下文或跟踪记录。我开始认为这要么与内部类有关,要么没有在dll的app.config中找到连接字符串键,这就是我现在在网上进行的研究。

1 个答案:

答案 0 :(得分:0)

  1. 如果要在.NET Core 2.0应用程序中使用System.Configuration.ConfigurationManager,则需要将带有相关配置部分的App.config添加到项目(在本例中为ASP.NET Core WebApi项目)。
  2. 在读取配置设置时,您应该检查是否为null,以便可以通过更有意义的错误消息(例如

    )来优雅地处理它。
    var connectionString = System.Configuration.ConfigurationManager
        .ConnectionStrings["connectionstring"]?.ConnectionString;
    if (connectionString == null)
    {
         throw new ConfigurationErrorsException(
            "ConnectionString 'connectionString' not found in application configuration file"
            );
    }