如何使用“Quartz.NET”和MVVM Light Toolkit的“SimpleIOC”?

时间:2015-10-25 15:27:23

标签: dependency-injection mvvm-light ioc-container factory-pattern quartz.net

如何将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好吗?

1 个答案:

答案 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)