Magic ..., механизм под названием Auto Event Wireup , по той же причине, по которой вы можете написать
Page_Load(object sender, EventArgs e)
{
}
в вашем коде и метод будет автоматически вызываться при загрузке страницы.
MSDN описание для System.Web.Configuration.PagesSection.AutoEventWireup
свойства :
Получает или задает значение, указывающее, автоматически ли события для страниц ASP.NET подключаются к функциям обработки событий.
Когда AutoEventWireup
равен true
, обработчики автоматически связываются с событиями во время выполнения на основании их имени и подписи. Для каждого события ASP.NET ищет метод, который назван в соответствии с шаблоном Page_eventname()
, например, Page_Load()
или Page_Init()
. ASP.NET сначала ищет перегрузку, которая имеет типичную сигнатуру обработчика событий (то есть она определяет параметры Object
и EventArgs
). Если обработчик событий с этой подписью не найден, ASP.NET ищет перегрузку без параметров. Подробнее в этом ответе .
Если вы хотите сделать это явно, вместо этого вы должны написать следующее
public override void Init()
{
this.PostAuthenticateRequest +=
new EventHandler(MyOnPostAuthenticateRequestHandler);
base.Init();
}
private void MyOnPostAuthenticateRequestHandler(object sender, EventArgs e)
{
}