特集
NetDictionaryで始める
Webサービス・プログラミング
4.[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ドキュメントでも使用されるため、そちらの見栄えは悪くなってしまうのだが……)。
Insider.NET 記事ランキング
本日
月間