如何使用Ninject命名绑定与DependencyResolver和PropertyInjection

时间:2011-05-26 03:42:16

标签: c# ninject

我意识到构造函数注入是首选,但我很好奇如何在使用其他形式的注入时使用Ninject的上下文“命名绑定”。

具体说明在使用DependencyResolver或属性注入时如何执行以下操作。

public MyService([Named("Alpha")] IRepository repository)
{
    this.repository = repository;
}

1 个答案:

答案 0 :(得分:17)

您可以创建一个命名绑定来处理Alpha:

Bind<IRepository>().To<AlphaRepository>().Named("Alpha");

然后您可以指定其他人:

Bind<IRepository>().To<AnotherRepository>().Named("Beta");

使用示例构造函数时,您将获得AlphaRepository。

为了将名称与属性一起使用,为属性提供一个name属性,就像您为param所做的那样:

[Inject, Named("Alpha")]
public IRepository Foo {get; set;}