Tag: generics接口

如何在Ninject中绑定Generic类型的接口

我是Ninject的新手,在我实现通用存储库模式时发现自己陷入困境。 我想将依赖项IRepository 绑定到类ConcreteRepository ,其中ConcreteRepository 实现IRepository ,EntityType实现IEntityType。 我试过这个: kernel.Bind<IRepository>().To<ConcreteRepository>(); …但是Ninject不会接受它,因为它不知道或不关心EntityType实现IEntityType。 我怎样才能绑定这种依赖? UPDATE 这是我得到的错误: 错误3类型’ICM.Dependency.Repository.ConcreteRepository’不能在generics类型或方法’Ninject.Syntax.IBindingToSyntax.To()’中用作类型参数’TImplementation’。 没有从“ConcreteRepository ”到“IRepository ”的隐式引用转换。 解 我仍然不太明白为什么我的绑定不起作用,但显然我在那里使用generics不正确。 因此,该解决方案与NInject无关。 我结束了指定ConcreteRepository以显式连接IEntityType和TEntityType: public class ConcreteRepository : IRepository where TEntity : TInterface { … } 然后注射可以写成如下: kernel.Bind<IRepository>().To<ConcreteRepository>()