У меня проблемы с пониманием практических сторон концепции внедрения зависимости с использованием контейнера IoC. У меня не было проблем с внедрением зависимостей в классах IController
с использованием ControllerFactory
. Это пример по умолчанию в большинстве контейнеров IoC.
Но что теперь? Это просто вопрос использования IFoo bar = Container.Resolve<IFoo>;
везде в коде вместо IFoo bar = new Foo();
?
Обновление:
Согласно gor это не очень хорошая идея. Зависимости следует вводить с помощью конструктора.
Но что это означает на практике?
interface IFoo {
IDependent dependency;
}
class Foo : IFoo {
public Foo(IDependent dependency) {
this.dependency = dependency;
}
}
Я могу только представить, как это сделать?!?
IFoo bar = new Foo(dependencyInstance);