2

Unity.MVC3Unity.WCFを使用しています。これらのパッケージを使用して、型を親コンテナーに登録すると、コントローラー/サービスが子コンテナーで作成されます。に登録されるタイプは、HierarchicalLifetimeManagerリクエストごとに 1 つのインスタンスに制限されます。

IUnityContainerコンストラクタ パラメータとしてを受け取るクラスで問題が発生しています。私はこれらをこのように登録します。

container.RegisterType<IFoo, Foo>(new InjectionConstructor(container));

これにより、子コンテナーではなく、親コンテナーへの参照を使用して Foo が作成されます。次に、 に登録された型を解決するとHierarchicalLifetimeManager、2 番目のインスタンスが取得されます。さらに、このインスタンスは子コンテナーと共に破棄されません。

タイプを解決するために使用される子コンテナを受け取るようにタイプを登録する方法はありますか?

4

1 に答える 1

2

オブジェクトに IUnityContainer 型の依存関係がある場合、そのオブジェクトは解決コンテナーに自動的に挿入されます。何も設定する必要はありません。動作するだけです。

于 2012-06-05T16:35:46.140 に答える