没有匹配的绑定可用,并且该类型不可自绑定。

时间:2016-03-15 23:10:00

标签: asp.net-mvc asp.net-mvc-5 dependencies ninject code-injection

我的绑定有什么问题?

    private static void RegisterServices(IKernel kernel)
    {
        kernel.Bind<IBaseRepository<User>>().To<UserRepository>();
    }    

我的IBaseRepository

public interface IBaseRepository<TEntity> where TEntity : class
    {
        void Commit();
        void Delete(TEntity entity);
        void Delete(object id);
        void Dispose();
        IQueryable<TEntity> GetAll();
        IQueryable<TEntity> GetAll(object filter);
        TEntity GetById(object id);
        TEntity GetFullObject(object id);
        IQueryable<TEntity> GetPaged(int top = 20, int skip = 0, object orderBy = null, object filter = null);
        void Insert(TEntity entity);
        void Update(TEntity entity);
    }

我的UserRepository

public class UserRepository : BaseRepository<User>
{
    public UserRepository(DataContext context) : base(context)
    {
        if(context == null)
            throw new ArgumentNullException();
    }
}

这是我回忆的错误 激活IBaseRepository {Role}时出错 没有匹配的绑定可用,并且该类型不可自绑定。 激活路径:  2)将依赖关系IBaseRepository {Role}注入UsersController类型的构造函数的参数角色  1)对UsersController的请求

1 个答案:

答案 0 :(得分:2)

您的异常消息明确指出缺少IBaseRepository<Role>的绑定。 角色不是用户

所以添加

kernel.Bind<IBaseRepository<Role>>().To<RoleRepository>();

应该有所帮助! ; - )