1

在下面如果我想在運行時在模型的某個依賴項中注入構造函數參數,它不會使用Parameter Override選項。還有什麼我們需要做的嗎?如何在運行時在運行時深入注入構造參數,同時通過統一解決

public class Test: ITest 
    { 
     ITestChild _testChild ; 
     public Test(ITestChild testChild) 
     { 
      _testChild = testChild; 
     } 
    } 

    public class TestChild: ITestChild 
    { 
     ITestChildChild _testChildChild ; 
     public Test(ITestChildChild testChildChild) 
     { 
      _testChildChild = testChildChild; 
     } 
    } 

    public class TestChildChild: ITestChildChild 
    { 
     public TestChildChild() 
     { 
     } 
    } 

測繪統一:

var unityContainer = new UnityContainer(); 
    unityContainer.RegisterType<ITest, Test>(new ContainerControlledLifetimeManager()); 
    unityContainer.RegisterType<ITestChild TestChild>(); 
    unityContainer.RegisterType<ITestChildChild, TestChildChild>(); 

    Main() 
    { 
     var testChildChild = new TestChildChild(); 
     var testObject = UnityContainer.Resolve<ITest>(new ParameterOverride("testChildChild", testChildChild)); 
    } 
+0

什麼錯誤? –

+0

有沒有錯誤testChildChild我試圖注入使用覆蓋不會進入鏈。 – sqlnewbie

+0

解決方案是使用「DependencyOverride」 – sqlnewbie

回答

0
Main() 
{ 
    var testChildChild = new TestChildChild(); 
    var testObject = UnityContainer.Resolve<ITest>(new DependencyOverride("testChildChild", testChildChild)); 
}