(譯)Windsor入門教程---第三部分 編寫第一個Installer

來源:互聯網
上載者:User

標籤:c   style   class   blog   http   a   

簡介

    在第二部分我們建立了控制器工廠。現在我們要把我們的控制器交給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方法)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.