Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
.net 如何将现有容器绑定到另一个容器?_.net_Unity Container - Fatal编程技术网

.net 如何将现有容器绑定到另一个容器?

.net 如何将现有容器绑定到另一个容器?,.net,unity-container,.net,Unity Container,我从UnityContainer类继承了一个实例,想创建一个额外的实例来“继承”上一个实例的所有注册 我是否正确理解了AddExtension方法实现了我所期望的功能 public class MyUnityContainer : UnityContainer { public MyUnityContainer(MyUnityContainer containerParent) { if ( containerParent!=null ) this.AddExtention

我从
UnityContainer
类继承了一个实例,想创建一个额外的实例来“继承”上一个实例的所有注册

我是否正确理解了
AddExtension
方法实现了我所期望的功能

public class MyUnityContainer : UnityContainer
{
 public MyUnityContainer(MyUnityContainer containerParent)
 { 
   if ( containerParent!=null )
     this.AddExtention(containerParent);
 }

 public static void Test()
 {
   MyUnityContainer cont1 = new MyUnityContainer();
   cont1.RegisterType<IA,A>();
   MyUnityContainer cont2 = new MyUnityContainer(cont1);
   IA a = cont2.Resolve<IA>();
}
公共类MyUnityContainer:UnityContainer
{
公共MyUnityContainer(MyUnityContainer containerParent)
{ 
如果(containerParent!=null)
本附录为附录(容器方);
}
公共静态无效测试()
{
MyUnityContainer cont1=新的MyUnityContainer();
cont1.RegisterType();
MyUnityContainer cont2=新的MyUnityContainer(cont1);
IA a=cont2.Resolve();
}
这是否可行?如果不行,实现这种功能的方法是什么


我可以使
MyUnityContainer
不是继承自
UnityContainer
,而是包含它(“has a”而不是“is a”),但我不想在我的
MyUnityContainer
类中实现
IUnityContainer
接口。

不,扩展不是这样做的。扩展向容器添加新功能或注册,而不是设置继承关系

您需要的是一个子容器。您可以调用parent.CreateChildContainer,这应该满足您的需要-除了子容器将是UnityContainer,而不是MyUnityContainer

MyUnityContainer做什么?也许有一种方法可以让它在没有子类的情况下工作