代码之家  ›  专栏  ›  技术社区  ›  Alastair Pitts

ASP.NET MVC控制器的寿命是多少?

  •  61
  • Alastair Pitts  · 技术社区  · 14 年前

    我正在开发我的MVC应用程序,我在想,控制器类的生命周期是什么?

    什么时候创建的?一个控制器有多少个实例?局部变量的含义是什么?它什么时候被毁?

    我确信有一个很好的链接在互联网上到处飘荡,但我的google fu找不到。

    2 回复  |  直到 13 年前
        1
  •  44
  •   Gumbo    13 年前

    史蒂芬·沃尔特有一个伟大的 article 在MVC框架处理的请求的生命周期中。

    以下是他文章顶部的摘录,接下来将详细解释每一步:

    生命周期步骤概述

    从ASP.NET MVC网站发出请求时,有五个主要步骤:

    1。已创建RouteTable

    第一步仅在ASP.NET应用程序首次启动时发生一次。RouteTable将URL映射到处理程序。

    2。UrlRoutingModule截获请求

    第二步在您提出请求时发生。urlroutingmodule截取每个请求,创建并执行正确的处理程序。

    三。MVChandler执行

    mvchandler创建一个控制器,将一个ControllerContext传递给该控制器,然后执行该控制器。

    4。控制器执行

    控制器确定要执行的控制器方法,构建参数列表,并执行该方法。

    5。调用renderview方法

    通常,控制器方法调用renderview()将内容呈现回浏览器。controller.renderview()方法将其工作委托给特定的viewEngine。

        2
  •  18
  •   Richard Szalay    14 年前

    假设你不改变默认值 ControllerFactory ,将为每个请求创建控制器,并将在“请求完成后的某个时间”垃圾收集控制器。

    简言之,您不需要担心竞争条件,例如变量(显然,对于静态变量是这样做的)。我已经说过了,为了更清晰的代码,我建议您保持控制器操作的可重入性。