酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows PhoneでSOAP Serviceをサービス参照してコード上で使用する

ライブラリを追加する際には、dllアセンブリを指定して、参照の追加を行います。Visual Studioの強みとしてはWebServiceをクラスとして使用する事が出来ます。

プロジェクトにWeb参照を追加する

SOAP ServiceをVisual Studio 2010にてサービス参照を行い、コード上から呼び出しを行うまでの準備していきましょう。例として、Microsoft Translator APIのサービスURLを使用したいと思います。

「New Project...」をクリックして新規プロジェクトダイアログを表示します。沢山Windows Phone 7向けのテンプレートが並んでいますが、今回は「Windows Phone Application」を選択します。プロジェクト名称とソリューション名称は「TranslatorTest」と入力しておきます。

f:id:ch3cooh393:20150203152532p:plain

Solution Explorerで、追加したいプロジェクト(ここではTranslatorTest)の「References」を右クリックして、「Add Service Reference」をクリックします。日本語版のVisual Studio 2010をお使いの方は、「サービス参照の追加」をクリックします。

f:id:ch3cooh393:20150203152523p:plain

サービス参照の追加ダイアログが表示されます。Address欄に使用するSOAP ServiceのサービスURL「http://api.microsofttranslator.com/V2/Soap.svc」を入力します。入力が終わったら「Go」をクリックします。

f:id:ch3cooh393:20150203152508p:plain

サービスのチェックやどんなサービスを提供しているかを読み込みを開始します。少し経つとSerives欄に使用可能なサービスの一覧が表示されます。Web Serviceがプロジェクトで使用出来るのかと、提供されているコードが信頼出来るかどうかを確認します。

Translator APIにて主に使用するのは、SpeakメソッドとTanslateメソッドです。Serives欄からLanguageServiceを選択して、Operations欄にSpeakメソッドとTanslateメソッドが提供されているのを確認します。

f:id:ch3cooh393:20150203152457p:plain

問題なければ次に進みます。Namespace欄にサービス参照の名前空間の名称を入力しましょう。追加するTranslator APIをコード上からアクセスするのに使用します。ここでは「Translator」と入力して、OKボタンをクリックしてください。

f:id:ch3cooh393:20150203152422p:plain

プロジェクト下にService Referenceフォルダが無い場合は作成され、Namespace欄で入力した名前で、SOAP Serviceで定義されているAPIを扱う為のクライアントクラスが生成されます。

f:id:ch3cooh393:20150203152402p:plain

オブジェクトブラウザにて、LanguageServiceClientクラスが生成されているかどうかの確認を行います。追加されていれば問題ありません。これでコード上でTranslator APIを使用する準備が整いました。

f:id:ch3cooh393:20150203152341p:plain

Web参照を更新する

ソリューション エクスプローラーで、サービス参照を右クリックし、[サービス参照の更新] をクリックします。 参照が元の場所から更新されている間、プログレス ダイアログ ボックスが表示され、メタデータの変更を反映してサービス クライアントが再生成されます。

Web参照を削除する

もし操作に誤って意図しないWebサービスが登録されてしまった場合は、追加と同じ要領でサービス参照の削除を行うことが可能です。Solution Explorerで削除したいサービスを右クリックして、「delete」をクリックします。

f:id:ch3cooh393:20150203152309p:plain

プロジェクトから参照の追加を行ったサービスが削除されます。

参照