我这样使用 Quartz.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
?
最佳答案
斯图尔特的评论是正确的。您需要实现自己的作业工厂。我在这里写了一篇描述该过程的博客文章:http://jayvilalta.com/blog//2012/07/23/creating-a-custom-quartz-net-jobfactory/
就 DI 容器而言,CaSTLe 也受支持。做一个search on NuGet for Quartz.Net并滚动浏览列表。你会看到 caSTLe、structuralmap、ninject、autofac 等。
关于c# - Quartz.NET 在作业中注入(inject)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32393009/