18:20Webサービスとして公開するクラスは、WebServiceクラスを継承させる。Webサービスは、メソッドのみを公開できるが、公開するメソッドはアクセス修飾子がpublicで更にWebMethodAttributeが付加されている必要がある。Webサービスを他のプロジェクトから利用するには、利用するプロジェクトにWeb参照を追加してやればいい。プロジェクトにWeb参照を追加した後にWebサービスが更新された場合は、Web参照を更新する必要がある。以下に、Webサービスを利用するサンプルコードを示す。HogeService();hoge.Method1();hoge.Method2();}一見すると普通のクラスと同じように扱えるように見える。Webサービスの挙動は普通のクラスとは大きく異なる。ユーザーがHogeServiceに定義したコンストラクタは、HogeServiceのインスタンス化の時点では呼び出されない。HogeServiceのWebメソッドにアクセスするたびに、ユーザーが定義したコンストラクタが呼び出される。(更に、WebサービスのDispose()メソッドも呼び出される。)つまり、WebメソッドにアクセスするたびにWebサービスは全く別のインスタンスとなってしまうのだ。このような挙動を取るかというと、ここで利用しているHogeServiceクラスは、Webサービス本体ではなく、Webサービスにアクセスするためのプロキシクラスだからである。プロキシクラスは、Web参照の追加を行うと自動で生成される。プロキシクラスには、Webメソッドを呼び出すためのメソッド(Webメソッドと同名)が用意される。このメソッドは、Webサービスに対してSOAPプロトコルでWebメソッドの処理要求をする。Webメソッドの処理要求を受信したWebサービスは、(Webサービスが配置されている場所で)インスタンス化→Webメソッド実行→Dispose()実行を行い、プロキシクラスに対してSOAPプロトコルで処理結果を返却する。処理結果を受け取ったプロキシクラスのメソッドはその処理結果を返却する。プロキシクラスには、Webメソッドを非同期に呼び出すためのメソッドも用意される。29ブログ内検索カウンターアクセスカウンターおすすめプロフィールAuthor:よこけん性別は男です。生年月日は1984年2月頃です。社会人は2004年4月頃からやってます。C#は2004年10月頃からやってます。このブログは2006年7月頃からやってます。アプリケーションリンクopus-i商用可・加工可で、綺麗な素材を提供していらっしゃいます。紹介していらっしゃいます。中心に扱っていらっしゃいます。コマンドレットをまとめたスナップインです。クラスライブラリを作ってみました。最近の記事ブログ移転しました。返事を返せない場合があります。