Nancy と Nancy.Bootstrappers.Ninject を使用した簡単なアプリケーションがあります。Web アプリは、既に Ninject を使用しているより大きなアプリケーション セットの一部であるため、Ninject を使用する必要があります。
さまざまなセットアップを試しました:
- ただ
Nancy
とNancy.Bootstrappers.Ninject
- で、 web activator を使用して
Ninject.Web.Common
2 つを登録しますHttpModules
- 作成されたカーネルをオーバーライド
GetApplicationContainer()
して返すことによってNinject.Web.Common
バインディングは次のように単純です
protected override void ConfigureRequestContainer(IKernel kernel, NancyContext context)
{
kernel.Bind<IRepository>().To<Repository>().InRequestScope();
}
そして、私のカスタム Nancy ブートストラップにあります。もちろん、IRepository
拡張します。IDisposable
しかし、これらのセットアップのいずれも、Dispose()
私の方法ではありませんでしたRepository
。
Dispose()
リクエストが完了した後に呼び出すリクエストごとのバインディングをセットアップする正しい方法は何ですか?