方法: 既存のサービス コントラクトを使用するワークフロー サービスを作成する

.NET Framework 4.5 では、コントラクト優先ワークフローの開発という形で、Web サービスとワークフローの統合が向上しています。 コントラクト優先ワークフローの開発ツールでは、コードのコントラクトを先に設計できます。 その後、ツールボックス内に、コントラクト内の操作用のアクティビティ テンプレートが自動的に生成されます。

注意

このトピックでは、コントラクト優先ワークフロー サービスを作成する手順について説明します。 コントラクト優先ワークフロー サービスの開発の詳細については、「コントラクト優先ワークフロー サービスの開発」を参照してください。

ワークフロー プロジェクトの作成

  1. Visual Studio で、[ファイル][新しいプロジェクト] の順に選択します。 [テンプレート] ツリーで [C#] ノードの下にある [WCF] ノードを選択し、 [WCF ワークフロー サービス アプリケーション] テンプレートを選択します。

  2. プロジェクトに ContractFirst という名前を付けて、[OK] をクリックします。

サービス コントラクトの作成

  1. ソリューション エクスプローラーでプロジェクトを右クリックして、 [追加][新しい項目] を選択します。 左側で [コード] ノードを選択し、右側で [クラス] テンプレートを選択します。 新しいクラスに IBookService という名前を付け、[OK] をクリックします。

  2. 表示されるコード ウィンドウの上部で、System.ServiceModel に対する Using ステートメントを追加します。

    using System.ServiceModel;  
    
  3. サンプルのクラス定義を次のインターフェイス定義に変更します。

    [ServiceContract]  
        public interface IBookService  
        {  
            [OperationContract]  
            void Buy(string bookName);  
    
            [OperationContract(IsOneWay=true)]  
            void Checkout();  
        }  
    
  4. Ctrl キーと Shift キーを押しながら B キーを押して、プロジェクトをビルドします。

サービス コントラクトのインポート

  1. ソリューション エクスプローラーでプロジェクトを右クリックし、 [サービス コントラクトのインポート] をクリックします。 [<現在のプロジェクト>] の下で、すべてのサブノードを開き、IBookService を選択します。 [OK] をクリックします。

  2. ダイアログが表示され、操作が正常に完了したことと、プロジェクトをビルドすると、生成されたアクティビティがツールボックスに表示されることが示されます。 [OK] をクリックします。

  3. Ctrl キーと Shift キーを押しながら B キーを押してプロジェクトをビルドすると、インポートしたアクティビティがツールボックスに表示されます。

  4. ソリューション エクスプローラーで、Service1.xamlx を開きます。 ワークフロー サービスがデザイナーに表示されます。

  5. Sequence アクティビティを選択します。 プロパティ ウィンドウで、ImplementedContract プロパティの […] ボタンをクリックします。 [型コレクション エディター] ウィンドウが表示されたら、[型] ボックスをクリックし、[型の参照…] エントリを選択します。 [参照して .Net の種類を選択] ダイアログ ボックスの [<現在のプロジェクト>] の下で、すべてのサブノードを開き、IBookService を選択します。 [OK] をクリックします。 [型コレクション エディター] ダイアログで [OK] をクリックします。

  6. ReceiveRequest アクティビティと SendResponse アクティビティを選択して削除します。

  7. ツールボックスから Buy_ReceiveAndSendReply アクティビティと Checkout_Receive アクティビティを "シーケンシャル サービス" アクティビティ上にドラッグします。