已經潛伏了幾個月,並決定跳上一個問題。一般來說,我對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