2010-11-05 89 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做什麼?也許有一種方法可以讓它在沒有子類的情況下工作?

相關問題