Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Если вы используете шаблон проекта по умолчанию, UserManager
создается следующим образом:
В файле Startup.Auth.cs есть такая строка:
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
, который заставляет конвейер OWIN создавать экземпляр экземпляра ApplicationUserManager
каждый раз, когда запрос поступает на сервер. Вы можете получить этот экземпляр из конвейера OWIN, используя следующий код внутри контроллера:
Request.GetOwinContext().GetUserManager<ApplicationUserManager>()
Если вы внимательно посмотрите на свой класс AccountController
, вы увидите следующие фрагменты кода, которые делают доступ к ApplicationUserManager
возможно:
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
Обратите внимание, что в случае, когда вам нужно создать экземпляр класса ApplicationUserManager
, вам нужно использовать статический метод ApplicationUserManager.Create
, чтобы у вас были применены соответствующие настройки и конфигурация к нему.