У меня есть несколько пар интерфейсов, и я реализую их так
ICategoryService -> CategoryService
ICategoryTypeService -> CategoryTypeService
IOrderService -> OrderService
ILoggingService -> LoggingService
Все классы и интерфейсы находятся в Data.dll
, и я повторяю это следующим образом.
foreach (var type in serviceAssembly.GetTypes())
{
if (type.Name.Contains("Repository") && !type.IsInterface && !type.IsGenericType)
{
Type interfaceImplement = type.GetInterfaces().SingleOrDefault(t => t.IsGenericType == false);
if (interfaceImplement != null)
{
System.Diagnostics.Debug.WriteLine($"{type.Name} is inherited by {interfaceImplement.Name}");
services.AddTransient(interfaceImplement, type);
}
}
}
и я получаюэта ошибка
InvalidOperationException: невозможно разрешить службу для типа «VietWebSite.Service.ILoggingService» при попытке активировать «VietWebSite.Web.Areas.WebApi.Administrator.ValuesController».
но это работает, если я изменю свой код так:
services.AddTransient<ILoggingService, LoggingService>();
services.AddTransient<ICategoryService, CategoryService>();
services.AddTransient<ICategoryTypeService, CategoryTypeService>();
services.AddTransient<IOrderService, OrderService>();
Пожалуйста, помогите.
Спасибо