Asp.net mvc 带有ASP.NET MVC 2区域的温莎城堡

Asp.net mvc 带有ASP.NET MVC 2区域的温莎城堡,asp.net-mvc,castle-windsor,asp.net-mvc-areas,Asp.net Mvc,Castle Windsor,Asp.net Mvc Areas,已经潜伏了几个月,决定提出一个问题。我对温莎和国际奥委会都是新手。我可以让温莎毫无问题地参与我的MVC2项目。我正在从事的项目是一个使用新区域概念的MVC2项目下多个应用程序的“门户”。在这个场景中,每个区域实际上都是“门户”中的一个单独的应用程序。我们这样做是为了有效地共享许多通用代码、视图、身份验证和跨应用程序功能。我们的许多应用程序彼此链接,因此在讨论后将它们合并到一个项目中是有意义的 我想知道的是如何允许不同的区域注入不同的混凝土类?在我有限的理解中,应用程序_Start负责构建容器并将

已经潜伏了几个月,决定提出一个问题。我对温莎和国际奥委会都是新手。我可以让温莎毫无问题地参与我的MVC2项目。我正在从事的项目是一个使用新区域概念的MVC2项目下多个应用程序的“门户”。在这个场景中,每个区域实际上都是“门户”中的一个单独的应用程序。我们这样做是为了有效地共享许多通用代码、视图、身份验证和跨应用程序功能。我们的许多应用程序彼此链接,因此在讨论后将它们合并到一个项目中是有意义的

我想知道的是如何允许不同的区域注入不同的混凝土类?在我有限的理解中,应用程序_Start负责构建容器并将其指定为控制器工厂。我不一定要在应用程序级别执行所有注入。我们有一个配置系统,其中每个区域的根都有一个config.xml,这些设置覆盖所有根设置。我希望通过让每个区域的config.xml(类似于Webforms web.config的继承,其中较低文件夹中的配置覆盖父文件夹中的设置)读取每个区域的注入来继续这种趋势

示例:我有一个ILogHandler,它需要一个不同的具体实现,具体实现取决于我所处的应用程序的哪个区域。因此,我需要根据我在应用程序中的位置注入不同的内容


我可以很容易地使用工厂来实现这一点,因为每个地区都可以有自己的工厂,但我正试图借此机会了解国际奥委会及其优缺点。任何帮助都将不胜感激

仅供参考-您绝对不能拥有特定地区的安全代码。例如,根据当前区域注入[Authorize]属性的工厂或调用程序可能会打开应用程序进行攻击


与MyAreaBaseController相比,您所在区域的所有控制器都必须子类化。此处的[Authorize]属性(和其他安全相关代码)没有问题,因为它们应用于该类型,并且与任何“区域”概念无关。

您是否已经开始研究ControllerBuilder类和WindsorController Factory?我已经(到目前为止我所了解的程度)。我已经看过了直风机控制器工厂和MvcContrib内部的工厂。如果答案在里面,我肯定需要做更多的研究。正如我所说,我是国际奥委会的新手。您是否建议在WindsorController Factory中有一种方法可以动态添加组件配置文件?如果是的话,我肯定没有想到。同意。我们所有的安全代码在根区域都是通用的。我们有基地控制器,但我所说的都与安全无关。实际上,我们已经编写了自己的属性,这些属性在系统范围内处理安全性,与IoC容器无关。我的问题是关于域级对象,如事件、日志记录等。谢谢你的提示!