【发布时间】:2015-07-17 06:18:02
【问题描述】:
Global.asax 继承 HttpApplication 类。但是 HttpApplication 并不包含 Global.asax 的所有事件。那么剩下的事件在哪里呢?它们必须是从某个地方继承而来的。它们的来源是什么?
【问题讨论】:
标签: asp.net global-asax
Global.asax 继承 HttpApplication 类。但是 HttpApplication 并不包含 Global.asax 的所有事件。那么剩下的事件在哪里呢?它们必须是从某个地方继承而来的。它们的来源是什么?
【问题讨论】:
标签: asp.net global-asax
它们不是从任何地方继承而来的。他们通过 a convention 被 Asp.Net 管道连接起来
在应用程序生命周期中,应用程序会引发您可以处理的事件并调用您可以覆盖的特定方法。要处理应用程序事件或方法,您可以在应用程序的根目录中创建一个名为 Global.asax 的文件。
...
ASP.NET 使用命名约定 Application_event
自动将应用程序事件绑定到 Global.asax 文件中的处理程序
最后,这个模型是可扩展的:
如果您将模块添加到您的应用程序,模块本身可以引发事件。应用程序可以使用约定 modulename_eventname 订阅 Global.asax 文件中的这些事件。
这就是为什么你可以得到例如此文件中还有与会话相关的事件,例如Session_Start。
【讨论】: