Здравствуйте, IT, Вы писали:
IT>Как минимум поменялось то, что теперь это всё делается явно. Не надо гадать кто, где, когда, зачем.
Я уже который раз не понимаю зачем нужно гадать? DI вполне явно инициализируется. Нет, безусловно могут быть ситуации, когда инициализация сделана через аттрибуты, да ещё и в другой assembly, да ещё и без исходников — но это уже проблемы архитектуры, а не DI.
IT>Этот код можно перенести в другой проект и он либо будет работать, либо не скомпилируется. А в случае с контейнерами он скорее всего скомпилируется, но работать не будет.
А что мешает перенести инициализацию DI и всё тогда тоже будет работать? Не говоря уж о том, что если в прицнипе стоит вопрос о "использовать DI или нет", значит код уже нетривиальный и просто так не переедет.