没有默认构造函数的Ninject中的泛型绑定

时间:2012-06-01 14:08:21

标签: generics binding ninject

Ninject似乎在解决以下问题时遇到了问题:

public interface IRepository<TEntity> : IDisposable where TEntity : class,IEntity
{
}

public class Repository<TEntity> : IRepository<TEntity> where TEntity : class,IEntity
{
    protected IDbContext _context;

    public Repository(IDbContext context)
    {
        _context = context;
    }
}

如果需要做一些特别的事情,我会这样做:

public interface IMyEntityRepository : IRepository<MyEntity>
{
    int GetSomeStuffForAnObject();
}

效果很好,但如果我只使用默认的Repository<T>,则绑定不起作用。

1 个答案:

答案 0 :(得分:1)

好的,我一定早点错过了什么。

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

似乎工作。