(译)Windsor入门教程---第三部分 编写第一个Installer
簡介
????在第二部分我們創建了控制器工廠。現在我們要把我們的控制器交給Windsor來管理。
Installer
????Windsor有一個專門的類installer.cs,用來向容器注冊組件。在你的應用程序中至少會有幾個這樣的installer類,所以要保持他們的代碼整潔以及可見性。接下來在我們的應用程序中新建一個專門的文件夾"Installer"來存放這些類。我們首先要注冊到容器中的就是控制器,所以我們先來新建一個ControllersInstaller.cs類。
Controller installer
????Installer類需要為Windsor解決兩個問題:怎么在應用程序中找到控制器和怎么配置控制器。
????第一點,怎樣找到控制器?很簡單,在ASP.NET MVC中,控制器都是要實現Icontroller接口的。
????配置起來很簡單,首先,mvc框架要求我們為每一次的請求都創建一個新的控制器實例。而Windsor默認是只有在第一次請求的時候創建實例的。相應的installer類:
這個類重寫了IwindsorInstaller的Install方法,通過Windsor的Fluent Registration API注冊了控制器。這是我們推薦使用的,也是最簡潔、最靈活的方法。每當我們在應用程序中新增加Controller(大的應用里可能會有幾百個)的時候,Windsor會自動注冊它們,我們不需要手動做任何事情,我們只要遵循Windsor的約定即可。
????繼續看代碼,靜態類Classes是進行注冊的入口點,首先調用public類型的非抽象方法FromThisAssembly(),這是一個包含注冊器的組件(mvc的組件,存在于控制器的生命周期中)。但是我們并不需要注冊所有的組件,所以BasedOn<IContorller>過濾器要求類必須實現Icontroller接口,雖然叫BasedOn,但是它同樣的也是一個泛型接口。最后是非常重要的一點----instance lifestyle。mvc希望的是使用過后即銷毀,但每次Windsor需要的時候要有一個新的實例,而且通知Windsor在什么時候不需要實例,可以回收實例了是調用者的職責所在(這也是為什么我們在WindsorControllerFactory類里重寫了ReleaseController方法)。
????現在我們已經在Windsor注冊了控制器的工作機制,并且有了控制器工廠來將控制器管理從Windsor卸載。在第四部分,我們將把這些組裝在一起運行----一個由Windsor支撐的應用。但是在此之前,有一點是必須關注的,那就是測試。
轉載于:https://www.cnblogs.com/xuquantong/p/3756250.html
總結
以上是生活随笔為你收集整理的(译)Windsor入门教程---第三部分 编写第一个Installer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 4597 + uva 10891
- 下一篇: 快速配置Ehcache