Как зарегистрировать сервисы в ASP.NET Boilerplate с помощью IocManager? - PullRequest
0 голосов
/ 28 мая 2019

Для 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), чтобы я мог использовать их в своих сервисах приложений?

1 Ответ

0 голосов
/ 28 мая 2019

AddSingleton

IocManager.Register<IActionContextAccessor, ActionContextAccessor>();

AddScoped + Factory

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
);

Ссылки

...