我正在使用Unity.MVC3和Unity.WCF。使用这些包,您向父容器注册类型,然后使用子容器创建控制器/服务。使用 a 注册的类型HierarchicalLifetimeManager
仅限于每个请求一个实例。
我的类将 aIUnityContainer
作为构造函数参数时遇到了问题。我像这样注册这些。
container.RegisterType<IFoo, Foo>(new InjectionConstructor(container));
这会导致创建 Foo 时引用父容器,而不是子容器。如果我随后解析了一个用 a 注册的类型HierarchicalLifetimeManager
,我将获得第二个实例。此外,此实例不会与子容器一起处置。
有没有办法注册我的类型,以便它们接收用于解析它们的子容器?