我能使用IoC容器来创建ASP.NET WebForms页面和控件吗?

4

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

同样的,使用WebForms创建页面和控件并传递任何依赖关系也是可能的吗?如果是,我需要在哪里插入它?

5个回答

2

2

1

Web Forms不允许任何代码控制页面和控件的实例化,因此像页面工厂这样的东西是不可行的,也无法进行构造函数注入。

但是有一些变通方法/黑科技可以让你获得setter注入,正如其他人所提到的那样。


1
下投票者:请告诉我我的答案错在哪里,这样我才能从错误中学习。 - Mauricio Scheffer

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

0

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

来自官方博客文章

依赖注入可用的领域

现在WebForms应用程序中有许多可以使用依赖注入的领域。以下是完整列表。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接