1

如何將Quartz.NET調度庫與SimpleIOC(包含在Laurent Bugnion的MVVM Light Toolkit中的IoC容器)集成?如何在MVVM Light Toolkit的「SimpleIOC」中使用「Quartz.NET」?

我目前的計劃是簡單地註冊Quartz調度器工廠,然後根據需要獲取它的實例,或根據需要將其注入到其他服務中。就像這樣:

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

然後:

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

以這種方式使用Quartz.NET OK?

回答

1

您只需要一個ISchedulerFactory的實例。像SimpleIOC那樣的looks一旦創建就會使用相同的實例,所以你的方法是OK的。

但是我沒有看到任何理由,爲什麼你的服務將需要ISchedulerFacgtory。這是你想要注入的IScheduler。考慮以下內容:

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

public SomeService(IScheduler scheduler) 
相關問題