1

Мой IUserService имеет значение null, не уверен, что происходит. Это мой AccountController:Ссылка на объект не установлена ​​в экземпляр объекта, резонатор зависимостей Unity

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 

Все другие зависимости разрешится успешно

ответ

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, все мое решение работало как шарм! Урок: обратите внимание на предупреждения.