}

bool HttpApplication.get_IsReusable()
{
return true;
}




而在HttpApplication.IHttpAsyncHandler.BeginProcessRequest函数中,将完成非常复杂的异步调用后台处理操作,这儿就不多罗嗦了,等有机会写篇文章专门讨论一下ASP.NET中的异步操作再说。而其最终调用还是使用System.Web.UI.PageParser对需要处理的Web页面进行解析和编译。

最后我们看看对用户自定义控件文件的处理。

Page类的LoadControl函数实际上是在抽象类TemplateControl中实现的,伪代码如下:

以下为引用:

public Control LoadControl(string virtualPath)
{
virtualPath = UrlPath.Combine(base.TemplateSourceDirectory, virtualPath);
Type type = UserControlParser.GetCompiledUserControlType(virtualPath, null, base.Context);
return this.LoadControl(type1);
}




实际的用户自定义控件预编译操作还是在UserControlParser类中完成的。

至此,在这一节中我们已经大致了解了ASP.NET自动预编译的实现原理,以及在什么时候对页面文件进行预编译。下一节我们将详细分析ApplicationFileParser、PageParser和UserControlParser,了解ASP.NET是如何对页面文件进行预编译的。

相关文章:

  • 2022-12-23
  • 2021-12-12
  • 2021-09-07
  • 2022-01-24
  • 2021-05-26
  • 2021-06-22
猜你喜欢
  • 2021-09-14
  • 2022-01-18
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2021-06-20
相关资源
相似解决方案