2014-10-03 56 views
1

有UserRoleProvider类,使用userRepository传递ninject约束对象必须具有构造以0 PARAMS类

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> 

我得到错误说​​不具有构造函数,它需要0个参数(以及配置文件的期望)。有没有办法将EFUserRepository对象(使用ninject)传递给​​类而不通过构造函数?

+0

您是否尝试过使用最新的[Ninject.Web.Common](https://www.nuget.org/packages/Ninject.Web.Common/)软件包?我认为它应该能够使用构造函数参数(您的原始设计)实例化类型。 – BatteryBackupUnit 2014-10-04 08:00:25

回答

0

我发现我的问题的解决方案。

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