【发布时间】:2018-03-21 18:56:43
【问题描述】:
我一直在阅读其他问题和答案,但我无法完全弄清楚我的解决方案的答案。
我有以下场景:
class BaseA {}
class BaseB {}
IInterface<TClassA, TClassB>
where TClassA : BaseA
where TClassB : BaseB
IterfaceImplementation<TClassA, TClassB> :IInterface<TClassA, TClassB>
where TClassA : BaseA
where TClassB : BaseB
class A : BaseA {}
class B : BaseB {}
注意:BaseA 和 BaseB 不实现接口。
有了这个设置,我需要做什么才能让 Ninject 绑定
IIntreface<A,B>
到
InterfaceImplementation<A,B>
我必须有一个绑定
kernel.Bind<IInterface<A,B>>().To<InterfaceImplementation<A,B>>()
但是,由于BaseA 和BaseB 的多个实现,我试图避免这种情况,并且不想为每个实现做额外的绑定。我想做的是
Bind<IInterface<Any(BaseA), Any(BaseB>>().To<InterfaceImplementation<ThatSame(A), ThatSame(B)>>();
有什么办法吗?
【问题讨论】:
标签: c# generics dependency-injection ninject