c#-Ninject +绑定通用存储库

我正在尝试将通用IRepository <>接口绑定到我的通用Repository <>-但是它总是返回null?

我已经尝试过各种方法,例如:

Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>)); 
Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 

但是,如果我传入一个非通用的接口和类,那么它像梦一样工作吗?

ebb asked 2020-02-21T21:45:15Z
2个解决方案
83 votes
IRepository< of whatever >

这是绑定开放泛型的正确语法。

如果您在请求IRepository< of whatever >时收到返回的null,则可能是您尚未共享的代码区域中存在其他问题。

quentin-starin answered 2020-02-21T21:45:51Z
3 votes

请参阅我对MVC3控制器构造函数+ Ninject的回答。

通用绑定在Ninject中可以正常工作。 尝试在存储库中使用无参数构造函数。 我认为问题就在那里。

Remo Gloor answered 2020-02-21T21:46:15Z
translate from https://stackoverflow.com:/questions/4370515/ninject-bind-generic-repository