ASP.NET MVCでカスタムモジュールを作成
1601 ワード
モジュールの作成
moduleはシステムを実現した.Web.IHttpModuleインタフェースのクラス.このインタフェースには、次の2つの方法が定義されています.
Init:モジュールの初期化時に呼び出され、入力されたパラメータはHttpApplicationオブジェクトであり、要求周期イベント処理方法を登録し、必要なリソースを初期化するために使用されます.Disposeは、要求プロセスが完了したときに呼び出され、明示的な管理が必要なリソースを解放します.このプログラムでは、beginRequestイベントとendRequestイベントをブロックするモジュールを作成し、応答への出力要求の実行時間を実現します.
手順:
1. TimerModuleクラスを作成し、IHttpModuleインタフェースを実装
2. TimerModuleでは、ブロックするイベントを購読します.
3. イベントハンドラの追加
4. Web.configに登録されたイベント
モジュールコード:
public class TimerModule : IHttpModule
{
private Stopwatch timer;
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += HandleEvent;
context.EndRequest += HandleEvent;
}
private void HandleEvent(object sender, EventArgs e)
{
HttpContext ctx = HttpContext.Current;
if (ctx.CurrentNotification==RequestNotification.BeginRequest)
{
timer = Stopwatch.StartNew();
}
else
{
ctx.Response.Write(string.Format(
"Elapsed:{0:F5} seconds",
((float)timer.ElapsedTicks)/Stopwatch.Frequency
));
}
}
}
Web.config :