Отличный ответ. Учитывая объем работы, которую я проделал с контейнерами IOC, странно, что мне это никогда раньше не удавалось.

ного боролся с этим в своем текущем проекте. Я сталкивался с некоторыми случаями, когда у меня есть конкретный тип, который не требует (и не нуждается) в реализации какого-либо конкретного интерфейса. Иногда я хочу, чтобы разрешение происходило через контейнер, потому что тип зарегистрирован в жизненном цикле singleon; иногда тип имеет параметры конструктора, которые являются частью более крупного графа объектов или сами регистрируются в одноэлементных жизненных циклах.

Мне всегда немного странно, когда я набираю код вроде:

Container.RegisterType<MyConcreteType, MyConcreteType>();

Любые мысли о том, является ли это запахом кода или нарушает лучшие практики для использования контейнера IOC?