方法 : Windows Communication Foundation サービス コントラクトを定義する
これは、基本的な Windows Communication Foundation (WCF) サービスとそのサービスを呼び出すことができるクライアントの作成に必要な 6 つのタスクのうちの最初のタスクです。全 6 タスクの概要については、「チュートリアル入門」のトピックを参照してください。
基本的な WCF サービスを作成する場合、まずコントラクトを定義します。コントラクトはサービスがサポートする操作を指定します。操作は Web サービス メソッドと見なすことができます。コントラクトは C++、C#、または VB インターフェイスを定義することで作成します。インターフェイスの各メソッドは、特定のサービス操作に対応しています。各インターフェイスには ServiceContractAttribute が適用されており、各操作には OperationContractAttribute が適用されている必要があります。ServiceContractAttribute を持つインターフェイス内のメソッドに OperationContractAttribute がない場合、メソッドは公開されません。
このタスクに使用するコードの例を、手順の後に示します。
インターフェイスを使用して Windows Communication Foundation コントラクトを作成するには
[スタート] メニューで Visual Studio 2008 を右クリックし、[管理者として実行] をクリックして、管理者としてプログラムを開きます。
新しいコンソール アプリケーション プロジェクトを作成します。[新しいプロジェクト] ダイアログ ボックスで、[Visual Basic] または [Visual C#] を選択し、[コンソール アプリケーション] テンプレートをクリックして、「サービス」という名前を付けます。既定の [場所] を使用します。
既定の
Service
名前空間をMicrosoft.ServiceModel.Samples
に変更します。System.ServiceModel.dll への参照をプロジェクトに追加します。
- ソリューション エクスプローラで、プロジェクト フォルダの下にある [参照設定] フォルダを右クリックし、[参照の追加] を選択します。
- [参照の追加] ダイアログで [参照] タブをクリックし、c:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation に移動します。次に、[System.ServiceModel.dll] を選択し、[OK] をクリックします。
メモ : コマンド ライン コンパイラ (Csc.exe や Vbc.exe など) を使用する場合は、アセンブリへのパスも入力する必要があります。たとえば、Windows Vista を実行しているコンピュータの場合、既定のパスは、Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation になります。 System.ServiceModel 名前空間に対して using ステートメント (Visual Basic の場合は Imports) を追加します。
ICalculator
という新しいインターフェイスを定義し、"http://Microsoft.ServiceModel.Samples" という Namespace 値を使用して、このインターフェイスに ServiceContractAttribute 属性を適用します。既定の名前空間値がコントラクト名に追加されるのを避けるために、名前空間を明示的に指定することをお勧めします。メモ : 属性を使用してインターフェイスまたはクラスに注釈を付けるときは、属性名から "Attribute" 部分を削除できます。したがって、ServiceContractAttribute は [ServiceContract] になります。 ICalculator
コントラクトが公開する各演算 (加算、減算、乗算、および除算) に対してメソッドを宣言し、WCF のパブリック コントラクトの一部として公開する各メソッドに OperationContractAttribute 属性を適用します。
例
次のコード例は、サービス コントラクトを定義する基本的なインターフェイスを示しています。
これでインターフェイスが作成されました。コンパイル エラーがないようにプロジェクトをビルドし、「方法 : Windows Communication Foundation サービス コントラクトを実装する」に従ってインターフェイスを実装します。トラブルシューティングの詳細については、「チュートリアル入門のトラブルシューティング」を参照してください。
関連項目
タスク
方法 : Windows Communication Foundation サービス コントラクトを実装する
リファレンス
ServiceContractAttribute
OperationContractAttribute