我可以使用IoC容器来创建ASP.NET webforms页面和控件吗?

时间:2010-08-26 19:22:48

标签: asp.net ioc-container webforms

使用ASP.NET MVC,可以很容易地集成IoC容器来创建控制器。

使用webforms创建页面和控件并将它们传递给任何依赖项也是可能的吗?如果是,我在哪里插上它?

5 个答案:

答案 0 :(得分:2)

是的,你可以,这里是Spring.NET does it的一个例子。

答案 1 :(得分:2)

Castle Windsor是ASP.NET的第一个主要IoC容器。请参阅this问题,讨论如何将其与Web表单一起使用。

答案 2 :(得分:1)

不直接,因为Web窗体不允许任何代码控制Page和Control实例化。所以像页面工厂这样的东西是不可行的,你不能做构造函数注入。

但是有些工作/黑客可以像其他人提到的那样购买你的注射器。

答案 3 :(得分:1)

另一个好方法是使用Model-View-Presenter模式,并将依赖项注入到演示者的构造函数中。

答案 4 :(得分:0)

我知道这个问题很老,但是在.NET Framework 4.7.2+中,您可以在ASP.NET WebForm页面和用户控件中进行构造函数注入。

来自this official blog post

  

可以使用依赖注入的区域

     

您现在可以在WebForms应用程序中的很多地方使用依赖注入。这是完整列表。

     
      
  • 页面和控件WebForms页面用户控件自定义控件
  •   
  • IHttpHandlerIHttpHandlerFactory
  •   
  • IHttpModule提供者
  •   
  • BuildProvider
  •   
  • ResourceProviderFactory
  •   
  • 健康监测提供商
  •   
  • ProviderBase创建的任何基于System.Web.Configuration.ProvidersHelper.InstantiateProvider的提供程序。例如自定义会话状态提供程序
  •