Важно понимать, что вы можете (и должны) написать свой код DI-дружественным, но не зависящим от контейнера способом.
Это означает, что вы должны всегдасдвиньте композицию зависимостей до такой степени, что вы больше не сможете ее откладывать.Это называется Composition Root и часто помещается рядом с точкой входа приложения.
Если вы разрабатываете свое приложение таким образом, ваш выбор DI-контейнера (или без DI-контейнера) вращаетсявокруг одного места в вашем приложении, и вы можете быстро изменить стратегию.
Вы можете выбрать DI * 1012 для бедного человека, если у вас всего несколько зависимостей или вы можете использоватьполноценный DI контейнер .При таком способе вы не будете зависеть ни от какого конкретного контейнера DI, поэтому выбор становится менее важным с точки зрения удобства обслуживания.
Контейнер DI помогает вам управлять полнотой, включая время жизни объекта,Используемый как описано здесь, он не делает ничего, что вы не могли написать в руке, но он делает это лучше и лаконичнее .Таким образом, мое пороговое значение для начала использования DI-контейнера было бы довольно низким.
Я бы начал использовать DI-контейнер, как только преодолею несколько зависимостей. Большинство из них довольно легко начать, в любом случае .
Обновление: мой ноябрь 2012 г. ответ на этот вопрос .