Ninject约定通用接口具有与具体类不同的参数数量

时间:2013-01-27 14:36:26

标签: ninject conventions arity

使用NInject约定,是否有办法绑定一个通用接口,该接口具有与实现它的具体类不同数量的类型参数?

例如:

    public interface IRepository<T1, T2>
    {
        ...
    }
    public class Repository<T1, T2, T3> : IRepository<T1, T2>
    {
        ...
    }

1 个答案:

答案 0 :(得分:0)

您无法直接执行此操作,但解决方案相当简单:使用两个继承自Repository<T1, T2, T3>的类型参数创建一个新类型,如下所示:

class Rep<T1, T2> : Repository<T1, T2, ActualType>
{
}

此类型可以直接映射到IRepository<T1, T2>,而不会留下任何未解析的泛型类型参数。