注入:注入所有子类

  • 本文关键字:注入 子类 c# ninject
  • 更新时间 :
  • 英文 :


好的,所以我已经看到了如何使用内核。GetAll 获取实现接口的每个类的实例。 (在多次注射下有很好的记录:https://github.com/ninject/Ninject/wiki/Multi-injection)

如果我想做几乎相同的事情,但我想让它注入子类的所有继承者怎么办?

var instances = kernel.GetAll<ParentClass>(); // or something equivalent?

我已经尝试了上面的代码。它不会抛出,但也不会返回任何实例。

您需要将基类绑定到每个派生类,如下所示:

kernel.Bind<ParentClass>().To<ClassA>();
kernel.Bind<ParentClass>().To<ClassB>();
var instances = kernel.GetAll<ParentClass>();

最新更新