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 将它传递给整个对象图中的所有构造函数参数。可能吗?