2

我正在使用Unity.MVC3Unity.WCF。使用这些包,您向父容器注册类型,然后使用子容器创建控制器/服务。使用 a 注册的类型HierarchicalLifetimeManager仅限于每个请求一个实例。

我的类将 aIUnityContainer作为构造函数参数时遇到了问题。我像这样注册这些。

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

这会导致创建 Foo 时引用父容器,而不是子容器。如果我随后解析了一个用 a 注册的类型HierarchicalLifetimeManager,我将获得第二个实例。此外,此实例不会与子容器一起处置。

有没有办法注册我的类型,以便它们接收用于解析它们的子容器?

4

1 回答 1

2

如果一个对象具有 IUnityContainer 类型的依赖项,它将自动被解析容器注入。你不需要配置任何东西,它就可以工作。

于 2012-06-05T16:35:46.140 回答