我有一个使用Ninject的MVC 5应用程序,我正在添加Hangfire.
当我添加Ninject时,NinjectWebCommon
由于其配置简单,我使用了nuget包.所以现在Ninject通过NinjectWebCommon
创建标准内核的类来配置并添加绑定.
此外,我创建了一些我在创建内核时加载的自定义模块
private static IKernel CreateKernel() {
var kernel = new StandardKernel( new MyCustomModule() );
try {
kernel.Bind<Func<IKernel>>().ToMethod( ctx => () => new Bootstrapper().Kernel );
kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
RegisterServices( kernel );
return kernel;
}
catch {
kernel.Dispose();
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
Ninject Web Common是通过WebActivatorEx
课程注册的
[assembly: WebActivatorEx.PreApplicationStartMethod( typeof( MyProject.Web.NinjectWebCommon ), "Start" )]
[assembly: WebActivatorEx.ApplicationShutdownMethodAttribute( typeof( MyProject.Web.NinjectWebCommon ), "Stop" )]
Run Code Online (Sandbox Code Playgroud)
现在问题与如何让Hangfire看到Ninject配置有关.通过查看Hangfire.Ninject
我能读到的包裹
该包为IGlobalConfiguration接口提供了一个扩展方法:
var kernel = new StandardKernel();
GlobalConfiguration.Configuration.UseNinjectActivator(kernel);
现在我的问题是:
IGlobalConfiguration
接口,我应该在OWIN启动方法中添加Hangfire Ninject配置(已经放置了Hangfire配置).我应该如何获得当前的Ninject内核(NinjectWebCommon配置的内核)?WebActivatorEx …