我意识到构造函数注入是首选,但我很好奇如何在使用另一种注入形式时使用Ninject的上下文"命名绑定".
具体来说,在使用DependencyResolver或属性注入时,如何执行以下操作.
public MyService([Named("Alpha")] IRepository repository)
{
this.repository = repository;
}
Run Code Online (Sandbox Code Playgroud)
ryb*_*ber 17
您可以创建一个命名绑定来处理Alpha:
Bind<IRepository>().To<AlphaRepository>().Named("Alpha");
Run Code Online (Sandbox Code Playgroud)
然后你可以指定其他像:
Bind<IRepository>().To<AnotherRepository>().Named("Beta");
Run Code Online (Sandbox Code Playgroud)
使用示例构造函数时,您将获得AlphaRepository.
为了将名称与属性一起使用,为属性提供一个name属性,就像您为param所做的那样:
[Inject, Named("Alpha")]
public IRepository Foo {get; set;}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8666 次 |
最近记录: |