2
我有泛型类型IMyGeneric<T> where T : IBase
。获取在Ninject中继承通用约束的所有类型
如何获取所有类型在ninject中继承IMyGeneric<T>
?
我尝试这样做:
this.kernel.GetAll<IMyGeneric<IBase>>();
,但不工作及其返回0的结果。
我能得到所继承IBase
一切,然后foreach
所有类型和使用this.kernel.Get(type)
但后来我不得不IEnumerable<object>
而不是IEnumerable<IMyGeneric<IMyInheritedType>>
和将无法施展,然后返回为特定类型的如IEnumerable<IMyGeneric<IBase>>
,因为我在演员时出错。
转换的'IMyGeneric'到'IMyGeneric '当接口被定义为变量类型才会工作:'IMyGeneric ',但即便如此,我不认为Ninject实际上支持此功能。因此,即使您注册了不同类型的“IMyGeneric ”列表,Ninject也可能不会为您获取这些类型。 –
Steven
任何其他方式来获取所有基于约束的实现?或者创建IBaseConstraint(仅限于约束),然后通过IBase获取所有内容?虽然我不太喜欢这个想法。 – zhuber
您可能想要更多地展示您为我们提供的有关如何继续操作的反馈的实际实施。 – Steven