困惑于global.asax?

max*_*axp 6 c# asp.net global-asax

我有一个叫做Global派生的类HttpApplication.

奇怪的是,我看到里面有很多方法Global看起来像:

void Application_Start(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)

代码肯定是在这个方法中执行的,所以这个方法是从某个地方调用的,但是在哪里?方法没有标记过载?

其次,我从中派生了一个类Global,让我们称之为GlobalFoo.

同样,如果我创建一个名为的方法Application_Start(),它将在我的派生类中被调用,否则Global将调用任何内容,因此我也可能从一个空类派生.

有人可以提供任何建议吗?我错过了ASP.NET的一些基本部分吗?

Ari*_*tos 2

所以该方法是从某个地方调用的,但是在哪里呢?

从应用程序池(从您分配的每个池)调用此函数,以发出应用程序的启动/结束事件信号并帮助您进行初始化。

分配运行 Web 应用程序的每个池都会运行这些功能。

asp.net 正在帮助您创建可以一起运行的外部或外部不同的对象/代码,这就是为什么您看到所有注册的代码都在运行。创建多个具有不同想法的“启动”例程是有帮助的。

是一个例子,这个模块只是自己检查安全协议......并且您不需要更改代码上的任何内容,只需注册即可。