我有一个非常简单的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,
米尔顿
答案 0 :(得分:0)
只需添加名称属性
即可<bind service="Game.IWeapon" to="Game.Sword" name="sword"/>
<bind service="Game.IWeapon" to="Game.Dagger" name="dagger"/>