Для ASP.NET Core я знаю, как регистрировать службы с помощью метода ConfigureServices
в классе Startup
.
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
services.AddScoped<IUrlHelper>(x => {
var actionContext = x.GetRequiredService<IActionContextAccessor>().ActionContext;
var factory = x.GetRequiredService<IUrlHelperFactory>();
return factory.GetUrlHelper(actionContext);
});
Как я могу зарегистрировать одни и те же службы с помощью IocManager
в своем проекте ASP.NET Boilerplate (ASP.NET Core), чтобы использовать их в своих службах приложений?
IocManager.Register<IActionContextAccessor, ActionContextAccessor>();
IocManager.IocContainer.Register(
Component
.For<IUrlHelper>()
.UsingFactoryMethod(kernel =>
{
var actionContext = kernel.Resolve<IActionContextAccessor>().ActionContext;
var factory = kernel.Resolve<IUrlHelperFactory>();
return factory.GetUrlHelper(actionContext);
})
.LifestyleCustom<MsScopedLifestyleManager>() // ASP.NET Core
// .LifestylePerWebRequest() // ASP.NET MVC 5
);