【发布时间】:2013-02-14 09:40:44
【问题描述】:
以this为例:
Bind(typeof(IRepository<>)).To(typeof(Repository<>));
这对 NInject 有效,我的问题是这是否是滥用/反模式。
问题是你不能拥有 IRepository 类型的成员/参数变量,因此拥有此绑定实例的唯一方法是通过具有 Type 请求的工厂。即
_kernel.Get(typeof(IRepository<>));
一种可能的探索途径可能是使用动力学;
public Foo(IRepository<dynamic> repository)
{}
至少在这里我们有一个注入的构造函数参数,它遵循控制反转。
我之所以问上述问题是因为another question 我问的是开放泛型;在这种情况下,以下...
public Foo(IEnumerable<IRepository<dynamic>> allRepoInstancesInjected)
... 似乎应该是可能的。
【问题讨论】:
标签: c# generics dependency-injection inversion-of-control ninject