繁体   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