2009-09-08 4 views

Répondre

5

Réponse de Nate:

multi-résolution (via GetAll) est actuellement pas polymorphes. Cela signifie qu'il considérera uniquement les liaisons à partir de l'interface exacte que vous spécifiez. Si vous faites ceci:

kernel.Bind<IWorker>().To<WorkerA>(); 
kernel.Bind<IWorker>().To<WorkerB>(); 
kernel.Bind<IWorker>().To<WorkerC>(); 

Et puis:

Il retournera 3 articles. Cependant, même si IWorkerA, IWorkerB et IWorkerC mettre en œuvre IWorker, Ninject ne regardera pas les liaisons de IWorkerA-WorkerA lorsque vous demandez pour IWorker.

Voir:

http://groups.google.com/group/ninject/browse_thread/thread/7b6afa06099bc97a#

1

Si vous si vous n'avez pas la situation polymorphes comme indiqué dans le fil qui est référencé par Romain's answer, alors vous ne devriez pas avoir de problèmes aussi longtemps que vous utilisez Ninject 2. Ninject 1.x n'incluait pas ce type de support.