Я работаю над созданием собственного контейнера IoC для учебных целей.Задав пару вопросов о них, мне показали, что создание фабрики для «разрешения» объектов было лучшим решением ( см. Третье решение здесь ).Пользователь Krzysztof Koźmic показал, что Castle Windsor действительно может реализовать это для вас.
Я читал источник CW все утро.Я знаю, когда вызывается Resolve, он «возвращает интерфейс».Как этот интерфейс "перехватывает" вызовы (поскольку за ними нет реализации) и вызывает его собственные методы?
Я знаю, что здесь происходит какая-то хитрость с отражением, и это довольно удивительно.Я просто не совсем пользователь, как делается «перехват».Я попытался отважиться на кроличью нору на мерзавце, но я заблудился.Если бы кто-нибудь мог указать мне правильное направление, это было бы очень ценно.
Также - Разве создание типизированной фабрики не будет зависеть от контейнера внутри вызывающего кода?В терминах ASP.NET MVC это то, что мне кажется.
РЕДАКТИРОВАТЬ: Найдено Reflection.Emit ... это может быть то, что используется?
EDIT2: Чем больше и больше я смотрю на это, тем сложнее это звучитавтоматически создавать фабрики.Я мог бы в конечном итоге просто придерживаться повторяющегося кода.