Unity.MVC3とUnity.WCFを使用しています。これらのパッケージを使用して、型を親コンテナーに登録すると、コントローラー/サービスが子コンテナーで作成されます。に登録されるタイプは、HierarchicalLifetimeManager
リクエストごとに 1 つのインスタンスに制限されます。
IUnityContainer
コンストラクタ パラメータとしてを受け取るクラスで問題が発生しています。私はこれらをこのように登録します。
container.RegisterType<IFoo, Foo>(new InjectionConstructor(container));
これにより、子コンテナーではなく、親コンテナーへの参照を使用して Foo が作成されます。次に、 に登録された型を解決するとHierarchicalLifetimeManager
、2 番目のインスタンスが取得されます。さらに、このインスタンスは子コンテナーと共に破棄されません。
タイプを解決するために使用される子コンテナを受け取るようにタイプを登録する方法はありますか?