2010-11-05 91 views
1

我有从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>(); 
} 

应该这样工作吗?如果不是,那么实现这种功能的方法是什么?

我可以让MyUnityContainerUnityContainer继承,但含有它(“有”,而不是“是”),但我不希望实现我MyUnityContainerIUnityContainer接口。

回答

-1

不,这不是什么扩展。扩展将新功能或注册添加到容器,而不是建立继承关系。

你想要的是一个子容器。你可以调用parent.CreateChildContainer,它应该做你想做的事情 - 除了孩子是一个UnityContainer而不是MyUnityContainer。

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

相关问题