如何将Quartz.NET调度库与SimpleIOC(Laurent Bugnion的MVVM Light Toolkit中包含的IoC容器)集成?
我目前的计划是简单地注册Quartz调度程序工厂,然后在需要时获取其实例和/或根据需要将其注入我的其他服务。像这样:
SimpleIoc.Default.Register<ISchedulerFactory, StdSchedulerFactory>();
然后:
public SomeService(ISchedulerFactory quartzSchedulerFactory)
{
//Quartz SchedulerFactory is here!
}
以这种方式使用Quartz.NET好吗?
答案 0 :(得分:1)
您只需要ISchedulerFactory
的一个实例。像SimpleIOC这样的looks将一直使用相同的实例,一旦创建它,你的方法就可以了。
但是我没有看到任何理由,为什么您的服务需要ISchedulerFacgtory
。这是你要注入的IScheduler
。请考虑以下事项:
SimpleIoc.Default.Register<ISchedulerFactory, StdSchedulerFactory>();
SimpleIoc.Default.Register<IScheduler>(
() => SimpleIoc.Default.GetInstance<ISchedulerFactory>().GetScheduler());
public SomeService(IScheduler scheduler)