3

希望有人可以帮助解决这个问题,这让我发疯。

我有一个继承自父对象并覆盖该对象的某些方法的类。其中一个覆盖中的相关代码如下所示(我已经删除了正常运行的代码):

    public override void Initialise()
    {
        if (Url != null)
        {
            _logger.LogInfo("Initialising for file " + Url);

            // call the base Initialise method
            try
            {
                base.Initialise();
            }
            catch (Exception ex)
            {
                _logger.LogError("Error on initialise : ", ex);
            }
      }
 }

logger 对象写入我们的应用程序日志数据库。

当它第一次到达代码中的这一点时,它会在初始化时记录错误,并给我一个未设置为对象错误实例的对象引用。但是没有更多信息,没有内部异常,也没有行号。

我想知道是否有任何方式 base 可能为空?这似乎很奇怪而且不太可能,但我无法解释为什么没有更多信息以及为什么代码拒绝了我所有试图从中获取更多信息的尝试。

它在实时服务器上,所以我无法单步执行,也无法在测试服务器上复制错误。如果有人对我如何获得更多关于哪里以及如何出错的细节有任何想法,我们将不胜感激。

干杯,马特

4

1 回答 1

5

你的问题的答案是否定的。Base 不能为 null,因为它是在子类之前实例化的(如果您不调用特定的基类型构造函数,则在子类构造函数执行之前调用默认的构造函数)。您的错误来自base.Initialize()方法。

于 2012-12-18T11:47:47.257 回答