我正在尝试绑定一个通用的IRepository<>接口到我的通用存储库<> - 但它总是返回null?
我尝试了各种各样的事情:
Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>));
Bind(typeof(IRepository<>)).To(typeof(Repository<>));
但是,如果我传入一个非通用的界面和类,那它就像一个梦想?
答案 0 :(得分:80)
Bind(typeof(IRepository<>)).To(typeof(Repository<>));
这是绑定开放泛型的正确语法。
如果您在请求IRepository< of whatever >
时收到空值,那么您尚未共享的代码区域可能存在其他问题。
答案 1 :(得分:3)
请参阅MVC3 Controller constructor + Ninject上的答案。
Generic Binding在Ninject中正常工作。尝试在Repository中使用无参数构造函数。我认为存在问题。