Stu*_*tLC 5 c# asp.net global-asax
在Global作为应用程序的替代方案中AutoEventWireups,似乎事件是针对大多数底层Application事件(BeginRequest, AuthorizeRequest, Error等)公开的,以及一组异步方法AddOnBeginRequestAsync等等.但是,我找不到等效的事件ApplicationStart!
所以我的问题是,无论如何都要订阅该AutoEventWireup方法Application_(On)Start被挂钩的"相同"事件?
public class Global : HttpApplication
{
public Global()
{
// I can do this ...
base.BeginRequest += new EventHandler(Global_BeginRequest);
// Or even AddOnBeginRequestAsync();
// But how can I do this?
base.ApplicationStart += new EventHandler(GlobalApplication_Start);
}
protected void Global_BeginRequest(object sender, EventArgs e)
{
// ...
}
protected void Global_ApplicationStart(object sender, EventArgs e)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
(出于兴趣...有没有办法关闭AutoEventWireupsGlobal.asax?使用AutoEventWireup ="false"属性似乎只适用于aspx页面)
编辑 - 似乎ApplicationStart和ApplicationEnd"是不代表HttpApplication事件的特殊方法".所以我可能会完全咆哮错误的树.
编辑
Re:为什么我需要这个?不幸的是,一个企业客户有一个框架,新的应用程序需要继承他们的自定义HttpApplication类,而FWR,他们HttpApplication已经实现了autowireup Application_(On)Start,这意味着我需要找到另一种方法来覆盖Framework连线,这样我就可以Bootstrap my了IoC容器和Automapper映射.根据劳埃德的回答,我也可以在ctor中进行自举Init(),尽管这并不完全相同.最终,我能够更改公司框架以允许多个订阅.
您可以覆盖 Init:
public class MyApplication : HttpApplication
{
public override void Init()
{
base.Init();
}
}
Run Code Online (Sandbox Code Playgroud)
然而你的构造函数也可以正常工作。
| 归档时间: |
|
| 查看次数: |
2320 次 |
| 最近记录: |