是否可以使用ninject.extensions.xml使用Ninject Named Bindings

时间:2013-10-15 12:25:25

标签: dependency-injection ninject ninject-extensions

我有一个非常简单的DI问题,想知道是否有办法使用Ninject(或任何其他DI助手)来解决它。 我有一个数据访问接口,由几个数据源提供程序实现,如DB,Sharepoint,CRM等。

我想使用Ninject来获取接口的特定实例,基于包含代表其中一个实现的代码的参数。 到目前为止,我知道我可以使用named bindings来做到这一点,但我找不到通过xml配置文件(Ninject.extensions.xml)执行相同操作的方法。

Ninject extensions xml提供了一种解决单一映射的方法:

<module name="SomeModule">
  <bind service="Game.IWeapon" to="Game.Sword"/>
  <bind service="Game.IWarrior" toProvider="Game.SamuraiProvider"/>
</module>

我想做这样的配置,但是使用名称,代码等对同一个界面使用多个映射。

TIA,
米尔顿

1 个答案:

答案 0 :(得分:0)

只需添加名称属性

即可
<bind service="Game.IWeapon" to="Game.Sword" name="sword"/>
<bind service="Game.IWeapon" to="Game.Dagger" name="dagger"/>