【问题标题】:How to use "Quartz.NET" with "SimpleIOC" of MVVM Light Toolkit?如何将“Quartz.NET”与 MVVM Light Toolkit 的“SimpleIOC”一起使用?
【发布时间】:2015-10-25 15:27:22
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您只需要一个ISchedulerFactory 实例。而且它looks 和 SimpleIOC 一样,一旦创建,就会始终使用同一个实例,所以你的方法是可以的。

    但是我看不出有任何理由,为什么您的服务需要ISchedulerFacgtory。这是您要注入的IScheduler。考虑以下几点:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-07
      • 2011-06-19
      • 2013-09-26
      • 2013-08-09
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多