已经潜伏了几个月,并决定跳上一个问题。一般来说,我对Windsor和IoC都很陌生。我可以让温莎与我的MVC2项目合作,没有任何问题。我正在使用的项目是一个MVC2项目下多个应用程序的“门户”,使用新的Areas概念。在这种情况下,每个区域实际上将是“门户”内的一个单独的应用程序。我们这样做是为了有效地共享大量的通用代码,视图,身份验证和跨应用程序功能。我们的许多应用程序都链接到另一个应用程序,所以在讨论它将它们合并为一个项目之后,它是有意义的。温莎城堡与ASP.NET MVC 2地区
我在想如何做的实际上是允许不同的区域注入不同的具体类?在我有限的理解中,Application_Start负责构建容器并将其分配为控制器工厂。我不一定要在应用程序级别进行所有注入。我们有一个配置系统,我们在每个区域的根目录下都有一个config.xml文件,这些设置将覆盖任何根设置。我希望通过为Area的config.xml(类似于Webforms web.config,其中下层文件夹中的配置覆盖父文件夹中的设置)读取每个区域的注入来继续这种趋势。
例如:我会有一个ILogHandler,它需要一个不同的具体实现,具体取决于我在哪个应用程序的Area。所以我需要注入不同的东西,这取决于我在应用程序中的位置。
我可以很容易地使用工厂来做到这一点,因为每个区域都有它自己的一套工厂,但我正试图借此机会了解IoC以及它的优点/缺点。任何帮助,将不胜感激。
您是否已开始查看ControllerBuilder类和WindsorControllerFactory? – 2010-04-10 02:44:34
我有(到目前为止我的理解程度)。我查看了直接的WindsorControllerFactory和MvcContrib内的工厂。如果答案在那里,我肯定需要做更多的研究。正如我所说,我对IoC来说是超新的。你是否建议在WindsorControllerFactory中有一种方法来动态添加组件配置文件?如果是这样,我绝对没有想到这一点。 – 2010-04-10 14:47:24