Ninject + Bind通用存储库

时间:2010-12-06 20:13:23

标签: c# ioc-container ninject

我正在尝试绑定一个通用的IRepository<>接口到我的通用存储库<> - 但它总是返回null?

我尝试了各种各样的事情:

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

但是,如果我传入一个非通用的界面和类,那它就像一个梦想?

2 个答案:

答案 0 :(得分:80)

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

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

如果您在请求IRepository< of whatever >时收到空值,那么您尚未共享的代码区域可能存在其他问题。

答案 1 :(得分:3)

请参阅MVC3 Controller constructor + Ninject上的答案。

Generic Binding在Ninject中正常工作。尝试在Repository中使用无参数构造函数。我认为存在问题。