では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)
{
// ...
}
}
(興味深いことに... AutoEventWireups
Global.asaxでをオフにする方法はありますか?。AutoEventWireup= "false"属性の使用は、aspxページでのみ機能するようです)
編集-ApplicationStartとApplicationEndは「 HttpApplicationイベントを表さない特別なメソッド」のようです。だから私は間違った木を完全に吠えているかもしれません。
再編集
:なぜこれが必要なのですか?残念ながら、企業のお客様には、新しいアプリがカスタムHttpApplication
クラスを継承する必要があるフレームワークがあり、FWRHttpApplication
はすでに自動配線を実装しているApplication_(On)Start
ため、フレームワークの配線をオーバーライドする別の方法を見つける必要がありました。これにより、ブートストラップを実行できます。 IoCコンテナとAutomapperマップ。ロイドの答えによると、これはまったく同じInit()
ではありませんが、ctorまたは同様にブートストラップすることもできます。最終的に、複数のサブスクリプションを許可するように企業フレームワークを変更することができました。