2010-11-27 149 views
7

我一直在尋找學習依賴注入(我想我現在已經掌握了基礎知識),並期待實現它到一個webform應用程序。什麼依賴注入框架與WebForms

我的問題是,我應該使用什麼依賴注入框架爲webforms項目,或者它是什麼最適合你的問題?我目前看過Spring.Net,Ninject,Unity和StructureMap,我傾向於在配置上沒有偏好,無論是XML還是流暢的界面。然而,XML配置變得不太有利嗎?

我遇到的大多數信息都與MVC環境中的依賴注入有關。並且已經閱讀了一些框架,如Structure Map only work with webforms using version 2.0 or earlier.所以我需要考慮的是,webforms是否會持續支持,以及對模式相對較新的人員的配置是否容易。

提前謝謝。

回答

10

你選擇哪個框架並不重要,唯一的竅門是允許諸如System.Web.UI.Page類的類被注入其依賴關係。當你看看ASP.NET MVC時,你會發現他們專門設計了它,可以很好地處理依賴注入框架。 ASP.NET WebForms顯然不是爲此而設計的。一些框架確實支持Web框架,但對於所有其他框架來說,這並不難。

在WebForms應用程序中,爲您創建頁面的'東西'是PageHandlerFactory。你必須做什麼是覆蓋PageHandlerFactory基類,實現這種類型的一些的注射行爲,並註冊在web.config這種新型:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <httpHandlers> 
     <add verb="*" path="*.aspx" 
     type="MyPageHandlerFactory, MyAsm"/> 
    </httpHandlers> 
    </system.web> 
    <system.webServer> 
    <handlers> 
     <add name="CSLPageHandler" verb="*" path="*.aspx" 
     type="MyPageHandlerFactory, MyAsm"/> 
    </handlers> 
    </system.webServer> 
</configuration> 

我寫an article有關如何創建一個PageHandlerFactory工作與Common Service Locator,但你可以選擇你最喜歡的IoC框架,只改變一行代碼來使它工作。

祝你好運。

+0

感謝您的洞察。由於其附加功能,決定與spring.net一起。 – gdp 2010-11-29 14:57:13