Asp.net mvc 将ninject绑定对象传递给一个类,该类的构造函数必须采用0个参数

Asp.net mvc 将ninject绑定对象传递给一个类,该类的构造函数必须采用0个参数,asp.net-mvc,ninject,Asp.net Mvc,Ninject,有一个UserRoleProvider类正在使用userRepository public class UserRoleProvider : RoleProvider { private IUserRepository userRepo; public UserRoleProvider(IUserRepository userRepository) { userRepo = userRepository; } ... } NinjectD

有一个UserRoleProvider类正在使用userRepository

public class UserRoleProvider : RoleProvider
{
    private IUserRepository userRepo;
    public UserRoleProvider(IUserRepository userRepository)
    {
        userRepo = userRepository;
    }
    ...
}
NinjectDependencyResolver类中有一个绑定方法

private void AddBindings()
    {
        kernel.Bind<IUserRepository>().To<EFUserRepository>();
    }
private void AddBindings()
{
kernel.Bind().To();
}
在Web.config中,我将UserRoleProvider设置为默认RoleProvider

<roleManager enabled="true" defaultProvider="UserRoleProvider">
      <providers>
        <clear/>
        <add name="UserRoleProvider" type="PomocnikPodroznika.WebUI.Infrastructure.Concrete.UserRoleProvider"/>
      </providers>
    </roleManager>


我得到的错误是,
UserRoleProvider
没有接受0个参数的构造函数(这是配置文件所期望的)。是否有任何方法可以将
EFUserRepository
对象(使用ninject)传递到
UserRoleProvider
类而不通过构造函数?

我找到了解决问题的方法

 private IUserRepository userRepo;
        public UserRoleProvider()
        {
            userRepo = DependencyResolver.Current.GetService<IUserRepository>();
        }
private iuserrepo;
公共用户角色Provider()
{
userRepo=DependencyResolver.Current.GetService();
}

您是否尝试过使用最新的软件包?我认为它应该能够用构造函数参数(您的原始设计)实例化类型。