石英.. NET在作业中注入属性

本文关键字:注入 属性 作业 NET 石英 | 更新日期: 2023-09-27 18:11:20

我用石英。. NET:

ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
IJobDetail clearCacheJob = JobBuilder.Create<ClearCacheJob>()
                        .WithIdentity("ClearCacheJob", "CacheGroup")
                        .Build();
scheduler.ScheduleJob(clearCacheJob, buildTrigger(cacheCronExpr));

ClearCacheJob是实现IJob的类

它工作,但现在我想在ClearCacheJob类添加一个属性。比如:

public class ClearCacheJob : IJob
{
    public ISomeService {get; set;}
    public void Execute(IJobExecutionContext context)
    {
        //do stuff
    }
}

如何设置SomeService

石英.. NET在作业中注入属性

Stuart的评论完全正确。您需要实现自己的作业工厂。我已经写了一篇博文来描述这个过程:http://jayvilalta.com/blog//2012/07/23/creating-a-custom-quartz-net-jobfactory/

就DI容器而言,Castle也是受支持的。在NuGet上搜索一下Quartz。然后滚动列表。你会看到城堡,structuremap, ninject, autoface等

我知道我迟到了,但我也写了一篇博客文章,其中包含了使用Ninject的完整工作示例。

罢工罢工

<> http://codein60seconds.blogspot.com/2015/08/quartz-with-ninject-dependency-injection.html

示例的源代码可以在这里找到:

罢工罢工

<> https://github.com/cknightdevelopment/CodeIn60Seconds/tree/master/DotNet/QuartzWithNinject

谢谢。


编辑

博客文章现在在这里:

http://knightcodes.com/.net/2016/08/15/dependency-injection-for-quartz-net.html

源代码在这里:

https://github.com/cknightdevelopment/KnightCodesExamples/tree/master/DotNet/Quartz.Ninject

和YouTube视频:

https://www.youtube.com/watch?v=RlW4vUsoxEY