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 :