私はこれについて多くの情報を読みましたが、これが今日どのように正確に行われるべきかについて、現在(2011年1月現在)何も見つかりません。詳細なしで、答えがあるように見えるいくつかの良い投稿を読みました。古いpre-unity-2アプローチは、主にカスタムライフタイムマネージャーを作成しました。今それを行う最良の方法は、リクエストの最初に作成され、リクエストの最後にコンテナ管理のライフタイムを使用して破棄される子コンテナを使用することです。別の人は、createchildcontainerで階層的なライフタイムを使用してこれを達成したと述べました。
私が見つけた資料のほとんどは、私が試したApplication_BeginRequest中に子コンテナーを作成することを示しています。私のコントローラーファクトリ(MvcContribのIoCControllerFactory)は、Application_Start(MvcContribのIDependencyResolverの実装)中に登録されたコンテナーを使用するため、これは機能しません。これは、デフォルト/ルートコンテナーです。
web.configにユニティセットアップがあり、子コンテナーを作成できますが、DIにそれらを使用してリクエストごとにシングルトンを作成するコントローラーを取得できないようです。ルートの代わりに、コントローラーファクトリで使用する特別なコンテナーを作成する必要がありますか?コンテナ管理または階層化する必要がありますか?リクエストごとにDependencyResolverを再設定するべきではありませんか?