【发布时间】:2015-07-16 21:48:07
【问题描述】:
Ninject 是否可以获取从特定抽象类继承的所有实例?例如,我有以下抽象类。
public abstract class MyAbstractClass { }
然后我有以下两个派生类,它们都继承自同一个抽象类。
public class MyDerivedClass1 : MyAbstractClass { }
public class MyDerivedClass2 : MyAbstractClass { }
现在我要将两个派生类与内核绑定,因为我希望它们处于单例范围内。
_kernel = new StandardKernel();
_kernel.Bind<MyDerivedClass1>().ToSelf().InSingletonScope();
_kernel.Bind<MyDerivedClass2>().ToSelf().InSingletonScope();
我知道内核可以向我返回如下实例。
_kernel.Get<MyDerivedClass1>();
有没有办法获取所有继承自 MyAbstractClass 的类?我尝试了以下但没有成功。
IEnumerable<MyAbstractClass> items = kernel.GetAll<MyAbstractClass>();
希望上面的 GetAll() 方法会返回一个包含两个实例的列表,一个是 MyDerivedClass1,第二个是 MyDerivedClass2。
【问题讨论】:
标签: c# inheritance dependency-injection ninject abstract-class