在开始之前,声明一下,由于ASP.NET MVC5正式发布了,后面的分析将基于ASP.NET MVC5最新的源代码。
在前面的内容我们分析了怎样根据路由信息来确定Controller的类型,并最终生成Controller的实例。这一节来了解一下Controller的总体执行分析,以同步执行版本为主。

Controller的继承体系如下图所示:

  ASP.NET MVC5学习笔记之Controller同步执行架构分析

当调用Controller实例的Excecute方法时,实际是调用ControllerBase的Excecute方法,该方法的主要实现代码如下:

 1 protected virtual void Execute(RequestContext requestContext)
 2         {
 3                 
 4             VerifyExecuteCalledOnce();
 5             Initialize(requestContext);
 6             using (ScopeStorage.CreateTransientScope())
 7             {
 8                 ExecuteCore();
 9             }
10         }
View Code

相关文章: