我以这种方式使用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并滚动浏览列表。您会看到城堡,结构图,ninject,autofac等。

关于c# - Quartz.NET在工作中注入(inject)属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32393009/

10-11 01:45