c# - 来自对象的空引用异常
问题描述
我在 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();
. 您对额外课程所做的事情是一种反模式,应该避免。
推荐阅读
- java - 在 JAVA 中读取、修改和写入大型 XML 文件(100 MB)
- windows-runtime - 什么是可组合的运行时类?
- python - 如何从scrapy中的数据中删除逗号?
- c# - 如何在实体框架中选择多首由多位艺术家制作的歌曲?
- git - git:仅在 *some* 文件上出现未提交更改错误的分支结帐
- django - 如何在 django 中为 2 个不同的提交按钮使用相同的引导模式?
- python - 在 Python 的多处理模块上发送未排队/处理的信号
- python - node-red-contrib-machine-learning 中的错误
- mongodb - 尝试在弹性搜索中将 MongoDB 文档作为单独的类型导入
- css - 在同一行使用 CSS 省略号和其他元素(兼容 ie9)