2009-09-08 67 views

回答

5

答:

多分辨率(通過GetAll)是目前 不多態性。這意味着 它只會考慮從您指定的確切接口綁定 。 如果你這樣做:

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

然後:

它將返回3項。然而,即使 如果IWorkerAIWorkerBIWorkerC實施IWorker, Ninject不會看的綁定 IWorkerAWorkerA當你問 的IWorker

參見:

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

1

如果你,如果你沒有在由Romain's answer引用的線程討論的多態的情況,那麼你應該沒有任何問題,只要您正在使用Ninject 2.Ninject 1.x不包含此類支持。

相關問題