Инъекции при наследовании
Есть базовый и потомковые классы. Хочу, чтобы в потомковых юзались некие объекты. Можно инъектировать их через конструкторы потомковых классов. Но ведь можно забыть, что в каждом потомковом должна быть такая инъекция. Тогда переношу ссылку на объект в базовый класс, инъектирую объект через конструктор базового, ну и по цепочке потомковых конструкторов передаю эту инъекцию на уровень базового. Ну а потом в потомках использую эту ссылку на объект из базового класса. Типа такого
class Base
{
public Base(IService service)
}
class Descendant
{
public Descendant(IService service) : base(service)
}
Вопрос - а никак нельзя по-другому обойтись, без портянок передачи инъекции в базовый по всей цепочке потомков, если надо ЗАСТАВИТЬ использовать этот объект в потомках? А то цепочка наследований может быть длинной, и потомков во всём дереве наследования может быть туева куча. И везде, в конструкторах всех потомков, писать base(service) как-то задалбывает. Тем более, что в реальности это выглядит куда длиннее - типа
base(IDatabaseContextService<MyDatabaseContext>)
А, да - у нас не синглетоны, а надо, чтобы в каждом объекте свой экземпляр MyDatabaseContext юзался.