我正在嘗試使用Ninject v3測試.NET4 Windows服務(System.ServiceProcess.ServiceBase
)中託管的Web服務。使用.NET 4將Ninject v2升級到v3 System.ServiceProcess.ServiceBase
我創建MyServerModule : NinjectModule
,並在Load()
我有條件地將我的接口綁定到基於app.config
設置的運行時對象。
在ServiceBase.OnStart()
中,init步驟爲:首先,基於MyServerModule
的實例創建一個新的StandardKernel
,並將其與Ninject容器關聯。接下來,根據我的服務類創建一個NinjectServiceHost
實例,然後打開服務主機以開始監聽。
在Ninject V2,代碼:
IKernel kernel = new StandardKernel(new MyServerModule());
KernelContainer.Kernel = kernel;
NinjectServiceHost serviceHost = new NinjectServiceHost(typeof(MyService));
serviceHost.Open();
然而,在Ninject V3,KernelContainer
不再存在。此外,NinjectServiceHost()
現在接受服務器工廠,其子類爲IServiceBehavior
。
如何在Ninject v3中執行類似的初始化步驟?