2
以前は、アプリケーション開始設定コントローラファクトリでIoCコンテナの依存関係を登録しました。しかし、今は要求ごとにいくつかの依存関係を登録する必要があります。 ASP.NET MVC 3でそれを作る方法はありますか?リクエストごとの依存関係の登録
以前は、アプリケーション開始設定コントローラファクトリでIoCコンテナの依存関係を登録しました。しかし、今は要求ごとにいくつかの依存関係を登録する必要があります。 ASP.NET MVC 3でそれを作る方法はありますか?リクエストごとの依存関係の登録
一般に、すべての基本IoCコンテナでも、何らかの方法でオブジェクトライフサイクル管理がサポートされています。
好きなコンテナはNinject 2.0です。ASP.NET MVC 3と一見無関係です。Ninject.MVC3
というNuGetパッケージとして入手できます。
RegisterServices(IKernel)
メソッドでは、解決する各タイプのスコープを定義できます。
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ISomeInterface>().To<SomeImplementation>().InRequestScope();
}
Ninjectを使用すると、次の利用可能なスコープのいずれかから選択することができます::
InRequestScope()
InThreadScope()
ISomeInterface
が解決されているとき
SomeImplementation
の同じ単一のインスタンスを返すようにNinjectを設定します
InSingletonScope()
InTransientScope()
ネイトコハリは、Cache-and-Collect Lifecycle Management in Ninject 2.0という名前のブログ記事を投稿しました。あなたは間違いなくそれをチェックしたいと思います!