首页 > 解决方案 > 如何在 Quartz.net 的作业类中使用我的一些服务和存储库?

问题描述

我需要在 Quartz.net 的作业类中使用我的一些服务我使用 Autofac 作为依赖注入

public class PushJob : IJob
{
    public async Task Execute(IJobExecutionContext context)
    {                      
      // need to use some service here 

    }
}

标签: c#asp.net-mvcautofacquartzautofac-configuration

解决方案


如果您寻求最简单的解决方案,只需将 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>();

这实际上会根据需要使用注入的服务来实例化您的工作人员。


推荐阅读