0
public class Component1
{
    public Component1(Component2 comp, Component3 comp3)
    {
        Component2 = comp;
        Component3 = comp3;
    }

    public Component3 Component3 { get; set; }

    public Component2 Component2 { get; set; }
}

public class Component3
{
    public Component3(Component2 comp)
    {
        Component2 = comp;
    }

    public Component2 Component2 { get; set; }
}

public class Component2
{
    private Guid _guid = Guid.NewGuid();
}

[TestMethod]
    public void InjectingUsingDictionary()
    {
        var container = new WindsorContainer();
        container.Register(Component.For<Component1>().ImplementedBy<Component1>().LifestyleTransient());
        container.Register(Component.For<Component2>().ImplementedBy<Component2>().LifestyleTransient());
        container.Register(Component.For<Component3>().ImplementedBy<Component3>().LifestyleTransient());
        Component1 c;
        var component2 = new Component2();
        using (container.BeginScope())
        {
            IDictionary arguments = new Dictionary<string, object> { { "comp", component2 }, { "Component2", component2 } };
            c = container.Resolve<Component1>(arguments);
            c.Component2.Should().Be(c.Component3.Component2);
        }
    }

大家好!当我解决时,我想传递一个 Component2 的实例来初始化所有道具,Windsor 将它传递给整个对象图中的所有构造函数参数。可能吗?

4

0 回答 0