Служба для типа Microsoft.AspNetCore.Http.HttpContextAccessor не зарегистрирована - PullRequest
0 голосов
/ 29 мая 2020

В моем ASP. Net основном приложении я получаю это исключение

Служба для типа «Microsoft.AspNetCore.Http.HttpContextAccessor» не зарегистрирована

Во время выполнения в моем классе Checkout, особенно в моем методе GetCart.

        public static Checkout GetCart(IServiceProvider serviceProvider)
        {
            ISession session = serviceProvider.GetRequiredService<HttpContextAccessor>()?.HttpContext.Session;

            var context = serviceProvider.GetService<AppDbContext>();
            string checkoutId = session.GetString("CheckoutId") ?? Guid.NewGuid().ToString();

            session.SetString("CheckoutId", checkoutId);

            return new Checkout(context) { CheckoutId = checkoutId };
        }

Я добавил службу HttpContextAccessor в файл startup.cs

services.AddMemoryCache();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddScoped(sp => Checkout.GetCart(sp));
services.AddSession();

Я даже пробовал Добавить с помощью метода AddHttpContextAccessor();, который должен правильно добавить службу как синглтон, но все равно получаю то же исключение.

Добавление в качестве области действия дало исключение времени выполнения

Невозможно разрешить службу с областью действия «Microsoft.AspNetCore.Http.IHttpContextAccessor» от поставщика root.

У кого-нибудь есть решение этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...