特集
NetDictionaryで始める
Webサービス・プログラミング

.[WebService]アトリビュートの追加

デジタルアドバンテージ
2001/12/05


 [WebMethod]によりメソッドの説明を付けたついでに、もう少し参照用ページの見栄えをよくしておこう。まず、先ほどから「このWebサービスは、http://tempuri.org/を〜既定の名前空間を変更してください。」と画面の下半分に大きく表示されている文言に従って、Webサービスのネームスペースを独自のものに設定し、このじゃまな警告メッセージを消しておこう。このネームスペースは世界で唯一のものなら、どんな文字列でも問題ないようだが、そこにも記述されているように、URI(Uniform Resource Identifiers。URLの概念をさらに拡大し、ネットワーク上のさまざまな情報リソースを識別可能にするための構文)を指定することに決まっている。とりあえず公開するWebサービスのURLを適当に指定しておけばよいだろう。

 警告メッセージにもあるように、Webサービスのネームスペースの指定は[WebService]アトリビュートの「Namespace属性」の値として設定する。これを設定することによって、ネームスペースに関する警告メッセージは出力されなくなる。[WebService]アトリビュートは、公開するメソッドではなく、公開するメソッドを含むクラス定義の前に記述するためのアトリビュートだ。

 また、[WebService]アトリビュートにもWebサービス自体の説明を設定するための「Description属性」と、さらには参照用ページの一番上の部分に白抜きで表示されるWebサービスのタイトルを設定する「Name属性」がある。例えば、whatstimeプログラムでこれらの属性に適当な文字列を設定すると、プログラムは次のようになる。

 1: <% @WebService Language="c#" Class="WhatsTimeClass" %>
 2:
 3: using System;
 4: using System.Web.Services;
 5:
 6: [WebService(
 7:   Name = "NetDictionaryで始めるWebサービス・プログラミング",
 8:   Description = "第3回のサンプル・プログラム",
 9:   Namespace   = "http://www.atmarkit.co.jp/fdotnet/")]
10: public class WhatsTimeClass: WebService {
11:   [WebMethod(Description="現在の時刻の取得")]
12:   public string WhatsTime() {
13:     return DateTime.Now.TimeOfDay.ToString();
14:   }
15: }
[WebService]を追加したWebサービス
[WebService]アトリビュートにより、Webサービスのタイトルとそれに関する説明、およびWebサービスのネームスペースを設定している。

 このWebサービスの参照用ページを開いたものが次の画面だ。

[WebService]を追加したWebサービスの参照用ページ
Webサービスのタイトルとそれに関する説明が追加され、ネームスペースに関する警告メッセージが消えている。

 参照用ページでは、Description属性に指定した文字列がそのまま表示されるようなので、文字列内にHTMLのタグを記述することができる。これを利用して、NetDictionaryの参照用ページでは、次の画面のようにもう少し見栄えよくしている(ただしこれらの文字列は、自動生成されるWSDLドキュメントでも使用されるため、そちらの見栄えは悪くなってしまうのだが……)。

NetDictionaryの参照用ページ
Webサービスの説明を記述する文字列にHTMLのタグを記述することによって見栄えをよくしている。具体的には、tableタグとfontタグを使用している。また、Insider.NETIWebMethod.NETの文字には、それぞれのページへのリンクを設定している。
 

 INDEX
  [特集]NetDictionaryで始めるWebサービス・プログラミング
  第3回 Webサービス・プログラミング始めの一歩
    1.Webサービスを記述するasmxファイル
    2.Codebehindによるコードの分離
    3.[WebMethod]アトリビュートの機能
  4.[WebService]アトリビュートの追加
    5.WebServiceクラスの継承
 
 特集 : NetDictionaryプロジェクト


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間