Ninject v3 を使用して、.NET4 Windows サービス ( System.ServiceProcess.ServiceBase
) 内でホストされている Web サービスをテストしようとしています。
を作成しMyServerModule : NinjectModule
、その中で、設定Load()
に基づいてインターフェイスをランタイム オブジェクトに条件付きでバインドしapp.config
ます。
の初期化手順は次のとおりです。まず、インスタンスに基づいてServiceBase.OnStart()
新しいを作成し、それを Ninject コンテナに関連付けます。次に、サービス クラスに基づいてのインスタンスを作成し、サービス ホストを開いてリッスンを開始します。StandardKernel
MyServerModule
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 で同様の初期化手順を実行するにはどうすればよいですか?