将解析容器传递给已解析的类型

时间:2012-06-05 14:52:27

标签: c# .net unity-container

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

我遇到了以IUnityContainer作为构造函数参数的类的问题。我这样注册这些。

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

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

有没有办法注册我的类型,以便他们将收到用于解决它们的子容器?

1 个答案:

答案 0 :(得分:2)

如果一个对象具有IUnityContainer类型的依赖关系,它将自动注入解析容器。你不需要配置任何东西,它只会起作用。