c# - 如何在 Quartz.net 的作业类中使用我的一些服务和存储库?
问题描述
我需要在 Quartz.net 的作业类中使用我的一些服务我使用 Autofac 作为依赖注入
public class PushJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
// need to use some service here
}
}
解决方案
如果您寻求最简单的解决方案,只需将 PushJob 类作为起点 = DI 的组合根,如下所示:
public class PushJob : IJob
{
private IContainer _container;
public async Task Execute(IJobExecutionContext context)
{
Register();
DoWork();
}
}
在 Register() 中只需创建您的容器实例,注册所有依赖项并存储在 _container 中。然后在 DoWork 中执行以下操作:
var worker = _container.Resolve<IWorker>();
这实际上会根据需要使用注入的服务来实例化您的工作人员。
推荐阅读
- javascript - 如何设置字体系列但保留后备堆栈?
- html - 放置在位置相对与相对div重叠的div之后的div?
- jquery - 带有 contenteditable 的 JQuery Datetimepicker
- python - 如果我不知道列表中有多少个值,则 SQL 语句
- android - 尽管导入不存在,但 AndroidX 工具栏类型不匹配
- sql - BigQuery:在 SQL 中从日期(字符串类型)中提取月份
- amazon-web-services - Ansible 变量文件作为映射不考虑参数化值
- reactjs - TS React:buildArray 不是函数
- mysql - 命令执行期间遇到致命错误。-- aspx VB - MYSQL
- python - Pygame:敌人移动循环