【发布时间】:2020-11-20 13:55:14
【问题描述】:
有点新手问题。我无法从 ASP.NET Core 3.1 中我自己的自定义类中访问依赖注入服务
我可以从控制器或剃须刀页面中正常访问服务,例如我可以获得配置和数据上下文信息:
public class DetailModel : PageModel
{
private readonly MyDataContext _context;
private readonly IConfiguration _config;
public DetailModel(MyDataContext context, IConfiguration config)
{
_context = context;
_config = config;
}
etc......
}
我现在希望从不是控制器或剃须刀页面的自定义类的构造函数中访问这些。例如我正在使用:
public class ErrorHandling
{
private readonly MyDataContext _context;
private readonly IConfiguration _config;
public ErrorHandling(MyDataContext context, IConfiguration config)
{
_context = context;
_config = config;
}
}
问题是,当我实例化我的类时,它坚持要求我将服务值传递给构造函数:
var myErrorHandler = new ErrorHandling(`<wants me to pass context and config values here>`)
这违背了 DI 的全部观点。我想我在这里遗漏了一些基本的东西!
我错过了什么?
【问题讨论】:
-
向服务集合注册
ErrorHandling并从构建的提供者处解决它。这将注入所需的依赖项 -
您尝试在哪里初始化处理程序?
标签: c# asp.net-core dependency-injection