Можно ли использовать именованные привязки Ninject с помощью ninject.extensions.xml

У меня очень простая проблема 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,
Милтон


person Milton    schedule 15.10.2013    source источник


Ответы (1)


Просто добавьте свойство name

<bind service="Game.IWeapon" to="Game.Sword" name="sword"/>
<bind service="Game.IWeapon" to="Game.Dagger" name="dagger"/>
person Remo Gloor    schedule 15.10.2013
comment
Ой! Это просто? Я попробую это! Спасибо Ремо! - person Milton; 17.10.2013