Share via


チュートリアル : WCF サービスの作成とアクセス

このチュートリアルは、単純な Windows Communication Foundation (WCF) サービスを作成し、テストして、Windows フォーム アプリケーションからアクセスする方法を例示しています。

注意

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio での開発設定のカスタマイズ」を参照してください。

サービスの作成

WCF サービスを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスで、[Visual Basic] または [Visual C#] ノードを展開し、[WCF] をクリックしてから [WCF サービス ライブラリ] をクリックします。 [OK] をクリックして、プロジェクトを開きます。

    WCF サービス ライブラリ プロジェクト

    注意

    これにより、テストしてアクセスすることが可能な機能するサービスが作成されます。次の 2 つの手順は、別のデータ型を使用するように既定の方法を変更する方法を示しています。実際のアプリケーションで、独自の関数をサービスに追加することもできます。

  3. IService1 ファイル

    ソリューション エクスプローラーで、IService1.vb または IService1.cs をダブルクリックし、次の行を探します。

    <OperationContract()>
    Function GetData(ByVal value As Integer) As String
    
    [OperationContract]
    string GetData(int value);
    

    value パラメーターの種類を String に変更します。

    <OperationContract()>
    Function GetData(ByVal value As String) As String
    
    [OperationContract]
    string GetData(string value);
    

    上記のコードで、<OperationContract()> または [OperationContract] 属性に注意してください。 これらの属性は、サービスによって公開されている任意のメソッドに必要です。

  4. Service1 ファイル

    ソリューション エクスプローラーで、Service1.vb または Service1.cs をダブルクリックし、次の行を探します。

    Public Function GetData(ByVal value As Integer) As String Implements IService1.GetData
        Return String.Format("You entered: {0}", value)
    End Function
    
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
    

    値パラメーターの種類を String に変更します。

    Public Function GetData(ByVal value As String) As String Implements IService1.GetData
        Return String.Format("You entered: {0}", value)
    End Function
    
    public string GetData(string value)
    {
        return string.Format("You entered: {0}", value);
    }
    

サービスのテスト

WCF サービスをテストするには

  1. F5 キーを押してサービスを実行します。 [WCF のテスト用クライアント] フォームが表示されて、サービスが読み込まれます。

  2. [WCF のテスト用クライアント] フォームで、IService1 の下の GetData() メソッドをダブルクリックします。 [GetData] タブが表示されます。

    GetData() メソッド

  3. [要求] ボックスで、[値] フィールドを選択して Hello と入力します。

    [値] フィールド

  4. [起動] ボタンをクリックします。 [セキュリティ警告] ダイアログ ボックスが表示された場合、[OK] をクリックします。 結果が [応答] ボックスに表示されます。

    [応答] ボックスに結果が表示される

  5. [ファイル] メニューの [終了] をクリックして、テスト フォームを閉じます。

サービスへのアクセス

WCF サービスを参照するには

  1. [ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスで、[Visual Basic] ノードまたは [Visual C#] ノードを展開し、[Windows] を選択して [Windows フォーム アプリケーション] を選択します。 [OK] をクリックして、プロジェクトを開きます。

    Windows フォーム アプリケーション プロジェクト

  3. [WindowsApplication1] を右クリックして [サービス参照の追加] をクリックします。 [サービス参照の追加] ダイアログ ボックスが表示されます。

  4. [サービス参照の追加] ダイアログ ボックスで [探索] をクリックします。

    [サービス参照の追加] ダイアログ ボックス

    Service1[サービス] ペインに表示されます。

  5. [OK] をクリックしてサービス参照を追加します。

クライアント アプリケーションをビルドするには

  1. ソリューション エクスプローラーで、[Form1.vb] または [Form1.cs] をダブルクリックして、Windows フォーム デザイナーを (まだ開いていない場合に) 開きます。

  2. ツールボックスで、TextBox コントロール、Label コントロール、およびButton コントロールをフォームにドラッグします。

    フォームへのコントロールの追加

  3. Button をダブルクリックし、Click イベント ハンドラーに次のコードを追加します。

      Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
          Dim client As New ServiceReference1.Service1Client
          Dim returnString As String
    
          returnString = client.GetData(TextBox1.Text)
          Label1.Text = returnString
      End Sub
    
    private void button1_Click(System.Object sender, System.EventArgs e)
    {
        ServiceReference1.Service1Client client = new
            ServiceReference1.Service1Client();
        string returnString;
    
        returnString = client.GetData(textBox1.Text);
        label1.Text = returnString;
    }
    
  4. ソリューション エクスプローラーで、[WindowsApplication1] を右クリックして [スタートアップ プロジェクトに設定] をクリックします。

  5. F5 キーを押してプロジェクトを実行します。 いくつかのテキストを入力し、ボタンをクリックします。 ラベルに「You entered:」と入力したテキストが表示されます。

    結果を表示するフォーム

参照

その他の技術情報

Consuming ASMX and WCF Services Sample