В последней версии Unity (MVC5) InjectionFactory устарела.Ниже приведено предупреждение «Устаревшее», которое вы получите при попытке его использовать.
[Obsolete("InjectionFactory has been deprecated and will be removed in next release. Please use IUnityContainer.RegisterFactory(...) method instead.", false)]
К сожалению, у меня недостаточно знаний об этом API, чтобы внести соответствующее исправление.
Как видно изКод ниже я пытаюсь зарегистрировать IAuthenticationManager, используя старое решение, которое использует InjectionFactory.Кто-нибудь знает, как это будет выглядеть с новым решением?
public static void RegisterComponents()
{
var container = new UnityContainer();
container.RegisterType<IAuthenticationManager>(new InjectionFactory(c => HttpContext.Current.GetOwinContext().Authentication));
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
Ниже я также включил контроллер, который ссылается на этот объект.
public class AccountController : Controller
{
private AdAuthenticationService _signInService;
public AccountController() { }
public AccountController(IAuthenticationManager signInManager)
{
this._signInService = new AdAuthenticationService(signInManager);
}
etc...
Дайте мне знать, если у вас все естьлюбые другие вопросы и спасибо за помощь.