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));
    }
4

1 回答 1

0
Main()
{
    var testChildChild = new TestChildChild();
    var testObject = UnityContainer.Resolve<ITest>(new DependencyOverride("testChildChild", testChildChild));
}
于 2012-10-17T10:07:09.053 回答