Обработка событий из других модулей
В предыдущем примере было показано, как обрабатывать события приложения в
специальном модуле 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