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

No matching bindings are available, and the type is not self-bindable.

我的绑定有什么问题?

    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

嗯,您的异常消息清楚地表明缺少 IBaseRepository<Role> 的绑定。 角色不是用户

所以添加

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

应该有帮助! ;-)