2015-09-04 2 views
2

я использую Quartz.NET таким образом: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?

+3

Вам нужно либо пользовательские 'IJobFactory', или если вы используете DI контейнер, один из которых имеет библиотеку расширения, которая устанавливает все, что для вас. Ninject и StructureMap приходят на ум. –

ответ

3

Комментарий Стюарта находится на месте. Вам нужно будет реализовать свой собственный завод. Я написал сообщение в блоге, описывающее этот процесс: http://jayvilalta.com/blog//2012/07/23/creating-a-custom-quartz-net-jobfactory/

Что касается контейнеров DI, то также поддерживается замок. Сделайте search on NuGet for Quartz.Net и прокрутите список. Вы увидите замок, структурную карту, ninject, autofac и т. Д.

0

Я знаю, что опаздываю на вечеринку, но я также написал сообщение в блоге с полным рабочим примером, используя Ninject. Сообщение в блоге можно найти здесь:

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

Исходный код примера можно найти здесь:

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

Спасибо.


EDIT

Блог пост сейчас здесь:

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

+0

«Блог удален». – PJH

+0

Только что обновил его сейчас –

 Смежные вопросы

  • Нет связанных вопросов^_^