Настройте Unity DI для удостоверения ASP.NET

Я успешно использую Unity для всех обычных внедрений конструктора, таких как репозитории и т. Д., Но я не могу заставить его работать с классами ASP.NET Identity. Настройка такова:

public class AccountController : ApiController
{
    private UserManager<ApplicationUser> _userManager { get; set; }

    public AccountController(UserManager<ApplicationUser> userManager)
    {
        if (userManager == null) { throw new ArgumentNullException("userManager"); }
        _userManager = userManager;
    }

    // ...
}

с этими конфигами для Unity:

unity.RegisterType<AccountController>();
unity.RegisterType<UserManager<ApplicationUser>>(new HierarchicalLifetimeManager());
unity.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());

Это то же самое, что и другие публикации здесь для Autofac, например, Ninject, но в моем случае это не работает. Сообщение об ошибке:

Произошла ошибка при попытке создать контроллер типа AccountController. Убедитесь, что у контроллера есть открытый конструктор без параметров. Ручное создание работ конечно:

public AccountController()
    : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>("Mongo")))
{
}

В чем дело?

ОБНОВИТЬ

Как предлагает @emodendroket, сокращение кода до этого делает свое дело. Нет необходимости в пакете Unity.Mvc.

unity.RegisterType<IUserStore<IdentityUser>, 
  MyCustomUserStore>(new HierarchicalLifetimeManager());

а также

public AccountController(UserManager<IdentityUser> _userManager,
  IAccountRepository _account)
{
    // ...

Ответы на вопрос(4)

Ваш ответ на вопрос