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

本文关键字:类型 | 更新日期: 2023-09-27 18:36:22

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

我的类遇到问题,该类将IUnityContainer作为构造函数参数。 我像这样注册这些。

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

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

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

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

如果对象具有 IUnityContainer 类型的依赖项,则会自动注入解析容器。您无需配置任何内容,它就可以工作。