1

IUserService的为空,不知道发生了什么。这是我的AccountController

private readonly ICustomMembershipProvider _membershipProvider;

public AccountController(ICustomMembershipProvider provider)
{
     _membershipProvider = provider;
}
//other code omitted

我的CustomMembershipProvider

public class CustomMembershipProvider : MembershipProvider, ICustomMembershipProvider
{
private IUserService _userService;

    public CustomMembershipProvider()
        : this(DependencyResolver.Current.GetService<IUserService>())
    {
    }

    public CustomMembershipProvider(IUserService userService)
    {
        _userService = userService;
    }
//other code omitted

当我尝试注册用户并调用以下方法时,我_userService的为空,这就是导致错误的原因,但不确定为什么会发生。

public override MembershipUser GetUser(string username, bool userIsOnline)
{
    var tempUser = _userService.GetByName(username);
//other code omitted

所有其他依赖项都已成功解决

4

1 回答 1

1

添加这个答案,因为我花了几个小时试图弄清楚这个错误指的是什么。我的项目有这个警告:Warning: Found conflicts between different versions of the same dependent assembly,因为这是一个警告,我没有注意它。好吧,显然这是所有问题的根源,我Project.Web使用的是 Mvc 3.0,而我Project.Services使用的是 Mvc 4.0,这就是为什么DependencyResolver.Current.GetService<IUserService>()不起作用。在我回滚Project.Services到 Mvc 3.0 后,我的整个解决方案就像一个魅力!经验教训:注意警告。

于 2013-05-24T13:22:02.590 回答