如何使用带有DependencyResolver和PropertyInjection的Ninject命名绑定

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

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

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

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

 Bind().To().Named("Alpha"); 

然后你可以指定其他像:

 Bind().To().Named("Beta"); 

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

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

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