如何将 "Quartz.NET" 与 MVVM Light Toolkit 的 "SimpleIOC" 一起使用?

How to use "Quartz.NET" with "SimpleIOC" of MVVM Light Toolkit?

如何集成 Laurent Bugnion 的 MVVM Light 工具包中包含的 IoC 容器 Quartz.NET scheduling library with SimpleIOC

我目前的计划是简单地注册 Quartz 调度程序工厂,然后在需要时获取它的实例 and/or 根据需要将它注入到我的其他服务中。像这样:

SimpleIoc.Default.Register<ISchedulerFactory, StdSchedulerFactory>();

然后:

public SomeService(ISchedulerFactory quartzSchedulerFactory)
{
   //Quartz SchedulerFactory is here!
}

这样使用Quartz.NET可以吗?

您只需要 ISchedulerFactory 的一个实例。而且它 looks 就像 SimpleIOC 将始终使用相同的实例,一旦它被创建,所以你的方法是好的。

但是我看不出任何理由,为什么您的服务将永远需要 ISchedulerFacgtory。这是您要注入的 IScheduler。考虑以下因素:

SimpleIoc.Default.Register<ISchedulerFactory, StdSchedulerFactory>();
SimpleIoc.Default.Register<IScheduler>( 
    () => SimpleIoc.Default.GetInstance<ISchedulerFactory>().GetScheduler());

public SomeService(IScheduler scheduler)