Я чувствую, что это то, что я должен уже знать, но я просто не запускаю все двигатели сегодня ...
У меня есть базовый класс с одним ctor, который принимает реализацию интерфейса как единственный параметр. Я использую DI-фреймворк, и все мои регистрации компонентов настроены и работают нормально.
Когда я наследую от этого базового класса, если я не передам значение базовому конструктору, я должен определить ctor без параметров, который обходит DI.
Итак, сейчас у меня есть:
public class MyObjectBase
{
IMyRequiredInterface _InterfaceImpl;
public MyObjectBase(IMyRequiredInterface interfaceImpl)
{
_InterfaceImpl = interfaceImpl;
}
...
}
public class AnotherObject : MyObjectBase
{
public AnotherObject()
{
}
...
}
Итак, из ворот это не получится. Я получаю ошибки при создании экземпляра AnotherObject, указывающего, что нет базового класса ctor, который принимает 0 параметров. Хорошо, я понял. Но теперь у меня есть выбор: либо изменить ctor класса-потомка так, чтобы он принимал аналогичный параметр, и передать это значение базовому ctor, либо подключить цепочку ctor в базовом классе, которая заставляет меня обходить DI и создавать конкретную реализацию требуемый интерфейс и передать его как часть объявления ctor без параметров.
Цель состоит в том, чтобы удовлетворить требования базового класса, чтобы классы-потомки ничего не знали об этом.
Может быть, я ошибаюсь, но это меня беспокоит. Есть мысли о лучшем способе справиться с этим? Я чувствую, что мне не хватает чего-то простого ...