如何在Quartz.net的作业类中使用某些服务和存储库?

时间:2018-11-06 08:01:56

标签: c# asp.net-mvc autofac quartz autofac-configuration

我需要在Quartz.net的工作类别中使用一些服务 我将Autofac用作依赖项注入

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

    }
}

1 个答案:

答案 0 :(得分:0)

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

实际上将实例化您的工作者,并根据需要注入您的服务。