首页 > 解决方案 > 来自对象的空引用异常

问题描述

我在 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”类的构造函数。

标签: c#asp.net-coreasp.net-core-webapinullreferenceexception

解决方案


如果您想将该类与 DI 容器一起使用,您还应该GetScopedServicesTools向服务提供者注册。

在你的Startup.cs你可以做services.AddScoped<GetScopedServicesTools>();然后简单地将它注入你的控制器或任何你喜欢的地方。

笔记:

然而,我想指出的是,DI 机制已经提供了开箱即用的东西,你试图用你的GetScopedServicesTools类来实现。您可以简单地将 IHttpContextAccessor 注入任何您喜欢的地方,因为您已经使用services.AddHttpContextAccessor();. 您对额外课程所做的事情是一种反模式,应该避免。


推荐阅读