簡體   English   中英

我可以使用IoC容器來創建ASP.NET 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頁面用戶控件自定義控件
  • IHttpHandlerIHttpHandlerFactory
  • IHttpModule提供商
  • BuildProvider
  • ResourceProviderFactory
  • 健康監測提供者
  • System.Web.Configuration.ProvidersHelper.InstantiateProvider創建的任何基於ProviderBase的提供程序。 例如自定義會話狀態提供者

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM