Я использую 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";
}
Почему у меня возникает ошибка на производстве, даже если приложение запускается локально на производстве? Но на моей локальной машине код работает нормально