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

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

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

Visual Studioを起動します。
シンプルな ジェネリック ハンドラーを作成する:画像1

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

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

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

ASP.NETのプロジェクトが作成されます。
シンプルな ジェネリック ハンドラーを作成する:画像5

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

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

[新しい項目の追加]ウィンドウが表示されます。
シンプルな ジェネリック ハンドラーを作成する:画像7

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

プロジェクトにジェネリックハンドラーが追加されました。
シンプルな ジェネリック ハンドラーを作成する:画像9

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

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

ジェネリックハンドラーにコードを実装します。下記のコードを記述します。

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);


シンプルな ジェネリック ハンドラーを作成する:画像11

実行結果

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

シンプルなジェネリックハンドラーを作成できました。

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2018-07-26
Copyright © 1995–2025 iPentec all rights reserverd.