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

时间:2010-11-05 17:02:19

标签: .net unity-container

我有从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继承而是包含它(“有一个”代替“是一个”),但我不想实现IUnityContainer接口在我的MyUnityContainer课程中。

1 个答案:

答案 0 :(得分:-1)

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

你想要的是一个儿童容器。你调用parent.CreateChildContainer,这应该做你想要的 - 除了孩子将是UnityContainer,而不是MyUnityContainer。

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