对象的空引用异常

问题描述

我在asp.net core 2.1中有一个应用程序。我已经在startup.cs文件注册/注入了HttpContextAccessor,如下所示。

services.AddHttpContextAccessor();

我还为接口IHttpContextAccessor创建了一个对象,并在依赖项注入类“ GetScopedServicesTools”的构造函数中启动了该对象。

 public readonly IHttpContextAccessor HttpContextAccessor;

 public GetScopedServicesTools(IHttpContextAccessor _httpContextAccessor)
 {
   HttpContextAccessor = _httpContextAccessor;
 }

我已经为DI类“ GetScopedServicesTools”创建了一个对象,但不确定将什么值传递给该类的构造函数

private GetScopedServicesTools getScopedServices;

您能帮我需要将什么值传递给“ GetScopedServicesTools”类的构造函数

解决方法

如果要与DI容器一起使用该类,还应该向服务提供商注册GetScopedServicesTools

在您的Startup.cs中,您可以执行services.AddScoped<GetScopedServicesTools>();,然后将其注入到控制器中或任何您喜欢的位置。

注意:

不过,我想指出的是,DI机制已经提供了您尝试使用GetScopedServicesTools类实现的开箱即用的功能。您可以随心所欲地注入IHttpContextAccessor,因为您已经通过services.AddHttpContextAccessor();向服务提供商注册了它。您在上课时要做的是反模式,应该避免。