0

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

我想使用 Ninject 来获取接口的特定实例,该实例基于包含表示此实现之一的代码的参数。到目前为止,我知道我可以通过使用命名绑定来做到这一点,但是我找不到通过 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,
米尔顿

4

1 回答 1

0

只需添加一个名称属性

<bind service="Game.IWeapon" to="Game.Sword" name="sword"/>
<bind service="Game.IWeapon" to="Game.Dagger" name="dagger"/>
于 2013-10-15T23:31:52.530 回答