Два общих механизма для создания привязок внедрения зависимостей, например, через контейнер IOC, основаны на конфигурации XML или блоке императивного кода. В этих случаях пара ключ-значение является явной (т.е. ключ = запрошенный тип, значение = возвращаемый тип).
Тем не менее, существует третий «эвристический» подход, когда контейнеру приложения / IOC даются только ключи [IMyClass], а затем контейнер отражает набор зависимостей сборки приложения, чтобы найти все совпадающие по имени конкретные классы [MyClass]. Иными словами, значения "возвращаемого типа" обнаруживаются, а не объявляются.
Я хотел бы знать двоякое: