次の方法で共有


チュートリアル: .NET Framework Windows フォームでの簡単な WCF サービスの作成

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

注意

この記事で紹介する Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 Visual Studio のエディションや環境設定がお使いのものと異なる場合があります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。

前提条件

WCF ツールは .NET ワークロードと一緒にはインストールされません。Visual Studio インストーラーを使用して、インストールを変更してください。 インストーラーで、[個別のコンポーネント] の下の [Windows Communication Foundation] を選択します。 Visual Studio の変更に関するページを参照してください。

サービスの作成

  1. Visual Studio を開きます。

  2. スタート ウィンドウで、 [新しいプロジェクトの作成] を選択します。

  3. [新しいプロジェクトの作成] ページの [検索] ボックスに「WCF サービス ライブラリ」と入力します。 [WCF サービス ライブラリ] の C# または Visual Basic テンプレートを選択し、 [次へ] をクリックします。

    Visual Studio で新しい WCF サービス ライブラリ プロジェクトを作成する

    ヒント

    テンプレートが表示されない場合は、Visual Studio の Windows Communication Foundation コンポーネントをインストールすることが必要な場合があります。 [さらにツールと機能をインストールする] を選択して Visual Studio インストーラーを開きます。 [個々のコンポーネント] タブを選択し、 [開発作業] まで下にスクロールして、 [Windows Communication Foundation] を選択します。 [変更] をクリックします。

  4. [新しいプロジェクトの構成] ページで、 [作成] をクリックします。

    注意

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

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

    IService1 ファイル

    次の行を見つけます。

    [OperationContract]
    string GetData(int value);
    

value パラメーターの型を文字列に変更します。

[OperationContract]
string GetData(string value);

上記のコードで、OperationContract 属性に注意してください。 これは、サービスによって公開されている任意のメソッドに必要な属性です。

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

    Service1 ファイル

    次の行を見つけます。

    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
    

value パラメーターの型を文字列に変更します。

public string GetData(string value)
{
    return string.Format("You entered: {0}", value);
}

サービスをテストする

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

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

    GetData() メソッド

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

    [値] フィールド

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

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

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

サービスにアクセスする

WCF サービスを参照する

  1. [ファイル] メニューで [追加] > [新しいプロジェクト] をポイントします。 [Windows フォーム アプリ (.NET Framework)] プロジェクトを選択します。

  2. プロジェクト ノードを右クリックして、[追加] > [サービス参照] をクリックします。 [サービス参照の追加] ダイアログ ボックスが表示されます。

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

    [サービス参照の追加] ダイアログ ボックスを示すスクリーンショット。

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

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

クライアント アプリケーションを構築します

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

  2. [表示]>[ツールボックス] をクリックして (またはキーボードで Ctrl+Alt+X を押して)、[ツールボックス] を開きます。

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

    フォームへのコントロールの追加を示すスクリーンショット。

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

    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;
    }
    
  5. ソリューション エクスプローラーでプロジェクト ノード (WindowsFormsApp1 など) を右クリックして、[スタートアップ プロジェクトとして設定] をクリックします。

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

    結果を表示する実行中のフォームのスクリーンショット。