Проблема, которую я вижу с определением привязок только в коде, заключается в том, что вам нужно добавить ссылку на dll. Вы не можете изменить привязку без добавления ссылки на новую dll (удаление ссылки на старый), изменить код и перекомпилировать.
Если бы у нас была xml config, мне вообще не нужна ссылка, и мне не пришлось бы перекомпилировать. Прямо сейчас у меня есть приложение MVC, которое использует DI для передачи репозиториев контроллерам. Ничто иное, чем код Ninject для добавления привязок, использует конкретные реализации репозиториев. И все же мне нужно добавить ссылку на DLL, содержащую реализации. Только для одной строки кода!
Или, может быть, есть возможность достичь этого с помощью Ninject?
Удивительно, как они могут сделать негативный звук, как плюс. Большинство других DI \ Ioc позволяют использовать Xml или Code. –
Это неотрицательно. Заведомо вырезанная поддержка XML, потому что это боль в ремонте. – Restuta
В основном я использую код для сопоставления привязок, но есть случаи, когда конфигурация работает. Для отладки я могу привязать IMailService к VirtualMailService, но в релизе используйте SmtpMailService. Файлы конфигурации преобразуются на основе среды выпуска. –