问题描述
我在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();
向服务提供商注册了它。您在上课时要做的是反模式,应该避免。