DependsOn - 指定依赖项
依赖注入的整个想法是一个类不实例化它的依赖,而是请求它们(通过构造函数或属性)。使用 Castle 指定解决依赖关系的方法是使用 DependsOn
:
public class Foo : IFoo
{
public Foo(IBar bar, string val)
{
Bar = bar;
Val = val;
}
public IBar Bar { get; set; }
public string Val { get; set; }
}
container.Register(
Component.For<IBar>().ImplementedBy<Bar>().Named("bar1"),
Component.For<IBar>().ImplementedBy<Bar>().Named("bar2"),
Component.For<IFoo>()
.ImplementedBy<Foo>()
.DependsOn(Dependency.OnComponent("bar", "bar1"),
Dependency.OnValue("val","some value")));