如何将 "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)
如何集成 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)