В моем основном приложении asp.net у меня есть классы зависимостей, которые внедряются почти во все сервисы.Поэтому я хочу создать базовый класс обслуживания, чтобы получить эти зависимости от свойств, и мои службы наследуют этот базовый класс обслуживания.
public abstract class BaseService
{
protected Foo Foo { get; set; }
protected Bar Bar { get; set; }
public BaseService(Foo foo, Bar bar)
{
Foo = foo;
Bar = bar;
}
}
public class Service : BaseService
{
public Service(IOtherDependency otherDependency) { }
public void Method()
{
var value = Bar.value;
Foo.Do(value);
}
}
Так что с данным кодом он предупреждает меня вызвать базовый конструктор с предоставленными параметрами, однакоэто параметры, которые будут вводиться во время выполнения, я не хочу этого.Если я добавлю конструктор без параметров, он не будет вызывать мой параметризованный конструктор, который мне нужен.
Я не хочу вызывать или определять какой-либо класс, который внедряется в базовый сервис (Foo
и Bar
) внутри моегоунаследованный сервис, как я могу это сделать?
Кстати, классы Foo
и Bar
внедряются как одноэлементные в контейнер, если их время жизни важно.