当前位置: 首页 > 编程语言 > C#

如何在NinjectShare中绑定通用类型接口

时间:2023-04-10 10:44:34 C#

如何在Ninject中绑定通用类型接口我想将依赖项IRepository绑定到类ConcreteRepository,其中ConcreteRepository实现IRepository,EntityType实现IEntityType。我试过这个:kernel.Bind().To();...但Ninject不会接受它,因为它不知道或不关心EntityType实现IEntityType。我怎样才能绑定这种依赖?更新这是我得到的错误:错误3类型“ICM.Dependency.Repository.ConcreteRepository”不能用作类型泛型或方法“Ninject.Syntax.IBindingToSyntax.To()”中的类型参数“TImplementation”。没有从“ConcreteRepository”到“IRepository”的隐式引用转换。解决方案我仍然不太明白为什么我的绑定不起作用,但显然我在那里错误地使用了泛型。所以这个解决方案与NInject无关。我最终指定了ConcreteRepository来显式连接IEntityType和TEntityType:publicclassConcreteRepository:IRepositorywhereTEntity:TInterface{...}然后注入可以写成如下:kernel.Bind().To()kernel.绑定(类型(IRepository))。到(类型(SimpleRepository));如果你想在这里看到我的:http://blog.staticvoid.co.nz/2011/10/staticvoid-repository-pattern-nuget.html我有一个绑定编辑的例子:你得到的错误是说您的具体存储库不是您尝试绑定的通用存储库的实例,即您需要执行publicclassConcreteRepository:IRepository{}以上不是C#学习教程:HowtobindtheGenericinterfaceinNinjecttoshareallthe内容。如果对你有用,需要了解更多C#学习教程,希望大家多多关注——publicclassConcreteRepository:IRepository{}本文来自网络收藏,不代表立场,如有不妥涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: