Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将解析容器传递给已解析的类型_C#_.net_Unity Container - Fatal编程技术网

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

C# 将解析容器传递给已解析的类型,c#,.net,unity-container,C#,.net,Unity Container,我正在使用和。使用这些包,可以向父容器注册类型,然后使用子容器创建控制器/服务。向层次结构CallifeTimeManager注册的类型限制为每个请求一个实例 我的类将IUnityContainer作为构造函数参数时遇到了一个问题。我是这样登记的 container.RegisterType<IFoo, Foo>(new InjectionConstructor(container)); container.RegisterType(新注入构造函数(容器)); 这将导致创建Foo

我正在使用和。使用这些包,可以向父容器注册类型,然后使用子容器创建控制器/服务。向层次结构CallifeTimeManager注册的类型限制为每个请求一个实例

我的类将
IUnityContainer
作为构造函数参数时遇到了一个问题。我是这样登记的

container.RegisterType<IFoo, Foo>(new InjectionConstructor(container));
container.RegisterType(新注入构造函数(容器));
这将导致创建Foo时引用父容器,而不是子容器。然后,如果我解析一个已向
HierarchyCallifeTimeManager
注册的类型,我将获得第二个实例。此外,此实例将不会与子容器一起处理


是否有一种方法可以注册我的类型,以便它们接收用于解析它们的子容器?

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

为什么要将容器注入到类中?通常,这表示在现代软件体系结构中Service Loopor的应用。如果将容器注入工厂类,我不会认为它是反模式。大概马克·希曼在他的博客里有一个不错的博客。但是后来我就不写工厂类了,而是让我来写。我刚刚发现了这一点。我现在正在进行测试,以确保我得到预期的行为。我知道必须有一个简单的方法。我只是不知道这有多容易。