Добрый день!
Столкнулся с проблемой на которую пока не нашел решения.
Есть интерфейс:
interface IService { long GetAvailableMemory(); }
Есть классы реализующие этот интерфейс: HDDService, RAMService, ....
Используя стоковый DI от Microsoft, я регистрирую сервисы:
services.AddScope<IService, HDDService>();
services.AddScope<IService, RAMService>();
services.AddScope<IService, ....>();
И в каком-нибудь контроллере инжектирую по интерфейсу
public class AdminController
{
private readonly IService _service;
ctor(IService service)
{
_service = service; // <------ ???????????
}
}
Как добиться управляемого инжектирования (я хочу чтобы в текущем примере инжектировался именно RAMService), не указывая в конструкторе конкретную реализацию (не так! -> ctor(RAMService service))