在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