Обработка событий из других модулей

В предыдущем примере было показано, как обрабатывать события приложения в специальном модуле HTTP. Однако некоторые глобальные события не поддерживаются классом HttpApplication, но все равно являются достаточно важными. К ним относятся события, генерируемые другими модулями HTTP, такие как события, вызываемые для запуска и окончания сеанса.

К счастью, вы можете инициировать эти события в событии Init(); вам просто понадобится несколько иной подход. Класс HttpApplication предлагает коллекцию Modules всех модулей, которые являются частью текущего конвейера HTTP. Вы можете извлечь модуль по имени, а затем использовать код делегата для подключения обработчика события.

Например, если вы хотите подключить обработчик события, имеющий имя OnSessionStart(), к событию SessionStateModule.Start, вы можете использовать следующий код для метода Init() в своем модуле HTTP:

public void Init(HttpApplication httpApp)
{
  SessionStateModule sessionMod = httpApp.Modules["Session"];
  sessionMod.Start += new EventHandler(OnSessionStart);
}

Резюме

В этой главе было показано, из чего состоит приложение ASP.NET. После изучения вопроса о времени жизни приложения вы узнали, как пишется код для обработчиков глобальных событий приложения с использованием файла global. asax, и как конфигурируется приложение с помощью файла web.config. Наконец, было рассмотрено, как используются отдельные скомпилированные компоненты в ваших Web-страницах и как расширяется конвейер HTTP за счет ваших собственных обработчиков и модулей.

 

 

 

 

 

 

предыдущая    следующая страница   оглавление

252

Hosted by uCoz