Asp.net mvc 将ninject绑定对象传递给一个类,该类的构造函数必须采用0个参数
有一个UserRoleProvider类正在使用userRepositoryAsp.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
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();
}
您是否尝试过使用最新的软件包?我认为它应该能够用构造函数参数(您的原始设计)实例化类型。