代码之家  ›  专栏  ›  技术社区  ›  M4N

我可以使用IOC容器创建ASP.NET Web窗体页和控件吗?

  •  4
  • M4N  · 技术社区  · 14 年前

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

    WebForms是否也可以创建页面和控件并传递它们任何依赖项?如果是,我要把它插在哪里?

    5 回复  |  直到 6 年前
        1
  •  1
  •   Mauricio Scheffer    14 年前

    不直接,因为Web表单不允许任何代码控制页面和控件实例化。所以像页面工厂这样的东西是不可行的,并且您不能进行构造函数注入。

    但是有一些解决方法/黑客可以像其他人提到的那样为你购买setter注入。

        2
  •  2
  •   Community Nick Bolton    7 年前

    Castle Windsor 是ASP.NET的第一个主要IOC容器。见 this 讨论如何与Web表单一起使用的问题。

        3
  •  2
  •   Trey Mack    12 年前

    是的,你可以,下面是一个例子 Spring.NET does it .

        4
  •  1
  •   Fernando    14 年前

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

        5
  •  0
  •   Jalal    6 年前

    我知道这个问题很古老,但是在.NET框架4.7.2+中,可以在ASP.NET Web窗体页和用户控件中进行构造函数注入。

    this official blog post :

    可以使用依赖注入的区域

    现在有许多领域可以在WebForms应用程序中使用依赖注入。这是一份完整的清单。

    • 网页和控件Web窗体网页用户控件自定义控件
    • IHttpHandler IHttpHandlerFactory
    • IHttpModule 提供者
    • 构建提供者
    • ResourceProviderFactory
    • 健康监测提供者
    • 任何 ProviderBase 基于提供程序创建者 System.Web.Configuration.ProvidersHelper.InstantiateProvider . 例如,自定义会话状态提供程序