在下面,如果我试图在运行时在模型的依赖项之一中注入构造函数参数,则不需要使用 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));
}