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")));