2014-09-27 3 views
0

Мой вопрос в том, есть ли другой способ, как в местоположении на уровне класса, что я могу выполнить все методы приложения, которые находятся в Global.cs, такие как «Application_PreRequestHandlerExecute» oal, это или «Application_Start» «? Основная цель заключается в том, что я хочу скрыть все эти методы приложений в скомпилированную dll приложения и вынести их из Global.cs.ASP.NET Global.asax Application_PreRequestHandlerExecute

благодарит

ответ

1

Вы не можете контролировать поток выполнения приложений для одного ASPX/уровня одного класса. Потому что для всех классов есть одно приложение, которое проходит через конвейер запросов (предварительный обработчик, запрос и т. Д.). Вот почему у нас есть HTTPModule, чтобы перехватить это событие конвейера.

Но так или иначе, я думаю, вы можете применить фильтр в этих событиях, если запрос для abc.aspx, то только для XYZ только для этого класса.

После ссылки, может быть более полезным - http://blogs.msdn.com/b/tmarq/archive/2007/08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx

0

Вы можете превратить ваши методы в Global.ascx в «остроты», которые требуют к API открытому в вашей библиотеке DLL. Например Application_Start() может позвонить по телефону myClass.ApplicationStart() и Application_PreRequestHandlerExecute может позвонить по телефону myClass.PreRequestHandlerExecute. Просто определите public static myClass в пространстве имен приложений и определите свой API. Затем импортируйте пространство имен myClass в Global.cs.

Смежные вопросы