2009-09-08 9 views

Odpowiedz

5

Odpowiedź od Nate:

Wielu rozdzielczości (przez GetAll) jest obecnie nie polimorficzny. Oznacza to, że będzie uwzględniać tylko powiązania z określonego interfejsu. Jeśli to zrobić:

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

, a następnie:

Powróci 3 pozycji. Jednak nawet jeśli IWorkerA , IWorkerB i IWorkerC wdrożyć IWorker, Ninject nie będzie patrzeć na powiązaniach z IWorkerA do WorkerA kiedy pytasz dla IWorker.

Patrz:

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

1

Jeśli jeśli nie masz polimorficzne sytuację omówioną w wątku, który odwołuje Romain's answer, to nie powinien mieć żadnych problemów, o ile używasz programu Ninject 2. Program Ninject 1.x nie zawierał tego rodzaju wsparcia.