我目前正在一款ASP.Net MVC 4网页应用中工作,我们使用NInject进行依赖注入。我们还基于Entity framework使用UnitOfWork和Repositories。
我们希望在应用程序中使用Quartz.net来定期启动一些自定义作业。我想让NInject自动绑定我们作业所需的服务。
实现方式可能如下:
public class DispatchingJob : IJob
{
private readonly IDispatchingManagementService _dispatchingManagementService;
public DispatchingJob(IDispatchingManagementService dispatchingManagementService )
{
_dispatchingManagementService = dispatchingManagementService ;
}
public void Execute(IJobExecutionContext context)
{
LogManager.Instance.Info(string.Format("Dispatching job started at: {0}", DateTime.Now));
_dispatchingManagementService.DispatchAtomicChecks();
LogManager.Instance.Info(string.Format("Dispatching job ended at: {0}", DateTime.Now));
}
}
到目前为止,在我们的NInjectWebCommon中,绑定是这样配置的(使用请求范围):
kernel.Bind<IDispatchingManagementService>().To<DispatchingManagementService>();
是否可以使用NInject将正确的实现注入到我们的自定义作业中?如何操作?我已经在堆栈溢出上阅读了一些帖子,但我需要一些建议和使用NInject的示例。