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