У меня есть веб-приложение ASP.NET, которое использует Microsoft Identity 2.0 и Unity.Mvc для инъекции зависимостей.Включить Unity для разрешения зависимостей от OwinContext
Microsoft Identity 2.0 регистрирует UserManager
и SignInManager
в пределах OwinContext
и зависит от HttpContext
.
Я хочу, чтобы ввести их в ManageController
class ManageController
{
public ManageController(IUserManager userManager, ISignInManager signInManager)
{
}
}
Однако, что вызывает исключение, как это еще не зарегистрированы в UnityContainer
.
Я не нашел никакого способа в пределах UnityContainer
для регистрации типа с объектом, инициализированным через делегат. что-то вроде этого
container.RegisterInstance<IUserManager>(() => HttpContext.Current.GetOwinContext().GetUserManager<UserManager>());
Я также пытался получить экземпляр из OwinContext и зарегистрировать, что в UnityContainer
var userManager = HttpContext.Current.GetOwinContext().GetUserManager<UserManager>();
container.RegisterInstance<IUserManager>(userManager);
HttpContext.Current
Однако это null
.
Есть ли способ настроить поведение картографирования UnityContainer
?