![](/img/trans.png)
[英]Can anyone recommend an IoC container for ASP.NET 2.0 Webforms?
[英]Can I use an IoC container to create ASP.NET webforms pages and controls?
使用ASP.NET MVC,可以很容易地集成IoC容器來創建控制器。
webforms是否也可以創建頁面和控件並將它們傳遞給任何依賴項? 如果是的話,我該把它插在哪里?
是的,你可以,這里是Spring.NET如何做到這一點的一個例子。
Castle Windsor是ASP.NET的第一個主要IoC容器。 請參閱此問題,討論如何將其與Web表單一起使用。
不直接,因為Web窗體不允許任何代碼控制頁面和控件實例化。 所以像頁面工廠這樣的東西是不可行的,你不能做構造函數注入。
但正如其他人所提到的那樣,周圍/黑客可以為你買入注射器。
另一個好方法是使用Model-View-Presenter模式,並將您的依賴項注入到演示者的構造函數中。
我知道這個問題很老,但在.NET Framework 4.7.2+中,您可以在ASP.NET WebForm頁面和用戶控件中進行構造函數注入。
來自這篇官方博文 :
可以使用依賴注入的區域
現在,您可以在WebForms應用程序中使用依賴注入的許多方面。 這是一個完整的清單。
- 頁面和控件WebForms頁面用戶控件自定義控件
IHttpHandler
和IHttpHandlerFactory
IHttpModule
提供商- BuildProvider
ResourceProviderFactory
- 健康監測提供者
System.Web.Configuration.ProvidersHelper.InstantiateProvider
創建的任何基於ProviderBase
的提供程序。 例如自定義會話狀態提供者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.