Прятался несколько месяцев и решил задать вопрос. Я очень новичок в Виндзоре и IoC в целом. Я могу заставить Виндзор работать с моим проектом MVC2 без проблем. Проект, над которым я работаю, представляет собой «портал» нескольких приложений в рамках одного проекта MVC2 с использованием новой концепции Areas. В этом сценарии каждая область фактически будет отдельным приложением внутри «портала». Мы делаем это для того, чтобы эффективно делиться МНОГО общего кода, представлений, аутентификации и функциональности между приложениями. Многие из наших приложений ссылаются друг на друга, поэтому после обсуждения было целесообразно объединить их в один проект.
Что мне интересно, как на самом деле разрешить различным областям вводить разные конкретные классы? В моем ограниченном понимании Application_Start управляет созданием контейнера и назначением его в качестве фабрики контроллеров. Я не обязательно хочу делать все инъекции на уровне приложения. У нас есть система конфигурации, где у нас есть файл config.xml в корне каждой области, и эти настройки переопределяют любые корневые настройки. Я хотел бы продолжить эту тенденцию, обеспечив возможность чтения инъекций для каждой области в файле config.xml (наследование, аналогичное webforms.config Webforms, где конфигурация в нижней папке переопределяет настройки в родительской папке).
Пример: у меня был бы ILogHandler, для которого потребовалась бы конкретная реализация в зависимости от того, в какой области приложения я нахожусь. Поэтому мне нужно будет вводить что-то другое в зависимости от того, где я нахожусь в приложении.
Я легко могу сделать это с помощью фабрик, поскольку в каждой области может быть свой собственный набор фабрик, но я пытаюсь воспользоваться этой возможностью, чтобы узнать об IoC и о его преимуществах / недостатках. Любая помощь будет оценена.