你如何在asp.net-mvc中连接Application_BeginRequest()

leo*_*ora 43 c# asp.net-mvc global-asax

我从asp.net-mvc项目的global.aspx.cs中看到

 protected void Application_BeginRequest()
 {
 }
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其添加到我的项目中时,我看不出是什么叫这个方法.我看到基础System.Web.HttpApplication有这个事件,但我没有看到任何覆盖它或订阅此事件.

有人可以解释你如何在asp.net-mvc中连接Application_BeginRequest?

Nic*_*cki 110

我担心Cos的答案不太准确.您不必连接它,因为基HttpApplication类会为您完成.这里没有接口或覆盖; HttpApplication使用反射将这些方法连接到基于方法名称的事件.所以这是基于会议的魔术,已经在框架中存在了一段时间.这很奇怪,我认为他们只是在当天与经典ASP保持相似之处和/或提供了避免编写大量小文章的捷径HttpModule.

对于好奇,加载HttpApplicationReflector并寻找HookupEventHandlersForApplicationAndModules()方法.或者,加载HttpApplicationFactory并查看ReflectOnApplicationType()ReflectOnMethodInfoIfItLooksLikeEventHandler()(喜欢那个名字!)方法.

Rick Strahl几年前在他的博客上对此进行了讨论.

是否真的需要知道使用ASP.NET?不,但知道它肯定会消除一些神秘感.