Asp. Net Базовая Фабрика Реализации не регистрирует Сервис - PullRequest
0 голосов
/ 16 апреля 2020

Я использую asp. net core 3.1

Я пытаюсь внедрить класс, используя. Net core DI реализации Factory Pattern. Код прекрасно работает на локальной машине , но как только I pu sh код для производства , он выдает ошибку. Даже если я запускаю код на производстве как локальный, он выдает мне ту же ошибку

InvalidOperationException: No service for type 'Core.ViewModels.Tenant.TenantEditModel' has been registered.

Моя реализация выглядит следующим образом.

У меня есть следующая инъекция в классе запуска

services.AddScoped<TenantResolver>();
services.AddScoped<TenantEditModel>(t=>t.GetService<TenantResolver>().GetTenant());

Класс разрешения арендатора равен

public class TenantResolver
    {
        private readonly IHttpContextAccessor _httpContextAccessor;

        public TenantResolver(IHttpContextAccessor httpContextAccessor)
        {
            _httpContextAccessor = httpContextAccessor;
        }

        public TenantEditModel GetTenant()
        {
            return (TenantEditModel)_httpContextAccessor.HttpContext.Items["tenant"];
        }
}

Теперь В моем представлении _Layout.cs html я внедряю службу следующим образом

@inject Core.ViewModels.Tenant.TenantEditModel Tenant
@{
    string themeName = string.Empty;
    themeName = (Tenant.Theme.ToLower() == "default") ?
        $"/lib/bootstrap/dist/css/bootstrap.min.css" :
        $"/lib/bootstrap/dist/css/bootstrap.{Tenant.Theme.ToLower()}.min.css";
}

Почему у меня возникает ошибка на производстве, даже если приложение запускается локально на производстве? Но на моей локальной машине код работает нормально

...