将ninject绑定对象传递给必须具有0参数的构造函数的类

时间:2014-10-03 12:13:47

标签: asp.net-mvc ninject

正在使用userRepository

的UserRoleProvider类
public class UserRoleProvider : RoleProvider
{
    private IUserRepository userRepo;
    public UserRoleProvider(IUserRepository userRepository)
    {
        userRepo = userRepository;
    }
    ...
}

NinjectDependencyResolver类中的绑定方法

private void AddBindings()
    {
        kernel.Bind<IUserRepository>().To<EFUserRepository>();
    }

在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类而不通过构造函数传递?

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

 private IUserRepository userRepo;
        public UserRoleProvider()
        {
            userRepo = DependencyResolver.Current.GetService<IUserRepository>();
        }