ASP.NET Global.asax Application_PreRequestHandlerExecute

时间:2014-09-27 16:58:00

标签: c# asp.net global-asax

我的问题是,是否有另一种方法,比如在类级别位置,我可以执行Global.cs中的所有应用程序方法,例如“Application_PreRequestHandlerExecute”oal是那个还是“Application_Start”?主要目标是我想将所有这些应用程序方法隐藏到应用程序的已编译dll中,并将它们从Global.cs中取出。

感谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以将Global.ascx中的方法转换为“单行”,调用您的dll中公开的API。例如,Application_Start()可以致电myClass.ApplicationStart()Application_PreRequestHandlerExecute可以致电myClass.PreRequestHandlerExecute。只需在应用程序命名空间中定义public static myClass并确定您的API。然后在myClass

中导入Global.cs命名空间