(Автоматический) Механизмы привязки внедрения зависимостей

Два общих механизма для создания привязок внедрения зависимостей, например, через контейнер IOC, основаны на конфигурации XML или блоке императивного кода. В этих случаях пара ключ-значение является явной (т.е. ключ = запрошенный тип, значение = возвращаемый тип).

Тем не менее, существует третий «эвристический» подход, когда контейнеру приложения / IOC даются только ключи [IMyClass], а затем контейнер отражает набор зависимостей сборки приложения, чтобы найти все совпадающие по имени конкретные классы [MyClass]. Иными словами, значения "возвращаемого типа" обнаруживаются, а не объявляются.

Я хотел бы знать двоякое:

  1. Какие контейнеры IOC (или другие инструменты позднего связывания) допускают эвристический подход? Есть ли у этого подхода более распространенное название?
  2. Существуют ли другие методы связывания, помимо трех, которые я перечислил, которые используются на практике?
10
задан Brent Arias 26 October 2011 в 08:25
поделиться