Ninject 与类型中的两个泛型参数绑定

Ninject binding with two generic parameters in types

我有这个界面:

public interface IRepository<TDomain, TBusiness>
    where TDomain : class
    where TBusiness : class
    {...}

还有这个class:

public class Repository<TDomain, TBusiness> : IRepository<TDomain,    TBusiness>
    where TDomain : class
    where TBusiness : class
    {...}

当我使用 ninject 绑定时,类似于:

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

并且出现错误"Incorrect number of type parameters in ..."。 当我只有一个通用类型时,一切正常。 有没有人解决这个问题?

这与 Ninject 无关,您遇到的错误是 C# 编译器错误。这是因为使用两个泛型参数指定类型的正确方法如下:

typeof(IRepository<,>)