解决 我的依赖注入有麻烦

袜子1992

知名会员
已加入
2020年5月20日
留言内容
57
编程经验
Beginner
我已经在我的主程序中实现了一个Dependency构造函数,该构造函数可以很好地工作,该方法被触发并且可以很好地记录我的数据。但是,当我尝试在另一个类中实现相同的目标时,会出现以下错误:

""System.Null.ReferenceException"对象未设置为对象的实例"

我已经在主程序中包含了private属性和构造函数,就像在主程序中一样,但是它仍然给我一个错误。问题是"_LoggingData"设置为null。有人知道为什么是这样吗?谢谢


C#:
// the error is occuring in the code below. I have this exact code in my 主要 program so i dont understand why its throwing an exception

_loggingData.LogEvent($"An error occured opening {fileName} - Reason  :  File read error");


这是我在exceptionHandling类(引发异常的地方)中包含的私有属性和构造函数。

C#:
        private static ILoggingData _loggingData;
        public ExceptionHandling(ILoggingData loggingdata) // this is where the error is occuring.
        {
            _loggingData = loggingdata;
        }
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
您是在使用Inversion和Control容器框架,还是在手动构造每个实例并注意传递参数。

如果是前者,则意味着您拥有一个允许在没有记录器的情况下进行构造的构造函数,或者您错误地注册了类,或者IoC容器存在错误。

如果是后者,则意味着您具有一个允许在没有记录器的情况下进行构造的构造函数,或者为记录器传递了null。
 

袜子1992

知名会员
已加入
2020年5月20日
留言内容
57
编程经验
Beginner
您是在使用Inversion和Control容器框架,还是在手动构造每个实例并注意传递参数。

如果是前者,则意味着您拥有一个允许在没有记录器的情况下进行构造的构造函数,或者您错误地注册了类,或者IoC容器存在错误。

如果是后者,则意味着您具有一个允许在没有记录器的情况下进行构造的构造函数,或者为记录器传递了null。
我手动构造每个实例并传递参数。
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
Set a breakpoint on your ExceptionHandler's constructor. Who is passing you a null for the loggingData parameter? Or do you have a parameterless ExceptionHandler constructor and that's the one that is being used?
 

袜子1992

知名会员
已加入
2020年5月20日
留言内容
57
编程经验
Beginner
Set a breakpoint on your ExceptionHandler's constructor. Who is passing you a null for the loggingData parameter? Or do you have a parameterless ExceptionHandler constructor and that's the one that is being used?
好吧,我已经意识到它现在不在我的主程序中工作了。 _loggingdata私有静态属性为null,这是将loggingdata参数传递为null值的结果。 exceptionHandler类也没有空的构造函数
 
Last edited:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,500
地点
弗吉尼亚州切萨皮克
编程经验
10+
您的课程是您的"main"类?如果是这样,则如何为您的Program类调用构造函数?您是否希望编译器为您提供ILoggerData实例?

在您的静态Main方法中,您可以创建实现ILoggerData的实例的实例,然后创建传递该ILoggerData的Program类的实例。
 

袜子1992

知名会员
已加入
2020年5月20日
留言内容
57
编程经验
Beginner
您的课程是您的"main"类?如果是这样,则如何为您的Program类调用构造函数?您是否希望编译器为您提供ILoggerData实例?

在您的静态Main方法中,您可以创建实现ILoggerData的实例的实例,然后创建传递该ILoggerData的Program类的实例。
我不敢相信我从未见过 o_O。非常感谢!现在一切正常!
 
最佳 底部