シンプルな ジェネリック ハンドラーを作成する - ASP.NET

ASP.NETでジェネリック ハンドラーを作成する手順を紹介します。

ASP.NETプロジェクトの作成

Visual Studioを起動します。


[ファイル][新規作成][プロジェクト]メニューをクリックし新しいプロジェクトを作成するか、ソリューションエクスプローラーでソリューションノードを選択し右クリックしてポップアップメニューを表示し[追加]メニューの[新しいプロジェクト]をクリックします。下図の[新しいプロジェクトの追加]ダイアログが表示されます。


左側のツリービューで[Visual C#]ノードの子ノードである[Web]ノードをクリックして選択します。右側のエリアのプロジェクト種類の一覧から[ASP.NET Web アプリケーション (.NET Framework)]を繰りくして選択します。ウィンドウ下部の[名前]テキストボックスに作成するプロジェクト名を入力します。またプロジェクトを保存する場所のパスを[場所]テキストボックスに入力します。入力ができたら[OK]ボタンをクリックします。


[新しい ASP.NET Web アプリケーション]のウィンドウが表示されます。一覧から[空]を選択します。オプションはデフォルトのままとします。設定ができたらウィンドウ右下の[OK]ボタンをクリックします。


ASP.NETのプロジェクトが作成されます。

ジェネリックハンドラーの追加

ソリューションエクスプローラーのウィンドウでプロジェクトのノードをクリックして選択します。右クリックしてポップアップメニューを表示し、[追加]メニューの[新しい項目]をクリックします。


[新しい項目の追加]ウィンドウが表示されます。


左側のツリービューで[Visual C#]ノードの子ノードの[Web]ノードをクリックして選択します。右側の種類の一覧リストから[ジェネリック ハンドラー]の項目をクリックして選択します。ウィンドウ下部の[名前]テキストボックスに作成するジェネリックハンドラーの名称を入力します。設定ができたらウィンドウ右下の[追加]ボタンをクリックします。


プロジェクトにジェネリックハンドラーが追加されました。


生成されたデフォルトのコードで実行してみます。プロジェクトを実行します。プロジェクトが実行され、ウェブブラウザが表示されます。ジェネリックハンドラーのURLではないページが表示された場合は、ジェネリックハンドラーのURLを入力して、ジェネリックハンドラーにアクセスします。
下図の画面が表示されます。ジェネリックハンドラーからテキストで"Hello World"の文字列が返されたものをWebブラウザが表示しています。

ジェネリックハンドラーの実装

ジェネリックハンドラーにコードを実装します。下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SimpleGenericHandler
{
  /// <summary>
  /// SimpleHandler の概要の説明です
  /// </summary>
  public class SimpleHandler : IHttpHandler
  {

    public void ProcessRequest(HttpContext context)
    {
      context.Response.ContentType = "text/html";
      string content = 
        "<HTML>"
       + "<head>" 
       + "<title>Simple Generic Handler</title>"
       + "</head>"
       + "<body>"
       + "<h2>Hello Generic Handler World!</h2>"
       + "</body>"
       + "</HTML>";
      context.Response.Write(content);
    }

    public bool IsReusable
    {
      get
      {
        return false;
      }
    }
  }
}

解説

生成されたジェネリックハンドラーのコードのProcessRequest()メソッド部分にコードを追記します。 下記のContentTypeを "text/html" に設定することで、ジェネリックハンドラーの返すデータがHTMLであることを指定しています。
  context.Response.ContentType = "text/html";
続いて下記のコードで、レスポンスとして返すHTMLのデータを用意して返しています。
  string content = 
   "<HTML>"
  + "<head>" 
  + "<title>Simple Generic Handler</title>"
  + "</head>"
  + "<body>"
  + "<h2>Hello Generic Handler World!</h2>"
  + "</body>"
  + "</HTML>";
  context.Response.Write(content);


実行結果

プロジェクトを実行します。プロジェクトが実行され、ウェブブラウザが表示されます。ジェネリックハンドラーのURLではないページが表示された場合は、ジェネリックハンドラーのURLを入力して、ジェネリックハンドラーにアクセスします。
下図の画面が表示されます。ジェネリックハンドラーからの戻り値が、HTMLファイルとして表示され、h2タグの文字サイズで "Hello Generic Handler World!" の文字列が画面に表示されることが確認できます。


シンプルなジェネリックハンドラーを作成できました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-06
作成日: 2018-07-26
iPentec all rights reserverd.