在Global
,作为替代应用AutoEventWireups
,似乎事件暴露最底层的应用程序事件(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)
{
// ...
}
}
(出于兴趣......有没有办法关掉在Global.asax中AutoEventWireups
?使用AutoEventWireup =“false”属性似乎只在aspx页面工作)
编辑 - ApplicationStart和ApplicationEnd似乎是不代表HttpApplication events的特殊方法。所以我可能会完全吠叫错误的树。
编辑 回复:为什么我需要这个?不幸的是,公司客户有一个框架,新应用程序需要继承他们的定制HttpApplication
类,而FWR,他们的HttpApplication
已经实现了自动装配Application_(On)Start
,这意味着我需要找到另一种方式来重写框架连接,所以我可以引导我的IoC容器和Automapper映射。根据劳埃德的回答,我也可以在ctor或Init()
中引导,尽管这不是quite the same。最终,我能够更改企业框架以允许多个订阅。
这样做的最终目标是什么?可能有更好的方法去做你正在努力完成的事情吗? – 2012-07-09 16:22:38