方法: 既存のサービス コントラクトを使用するワークフロー サービスを作成する
.NET Framework 4.5 では、コントラクト優先ワークフローの開発という形で、Web サービスとワークフローの統合が向上しています。 コントラクト優先ワークフローの開発ツールでは、コードのコントラクトを先に設計できます。 その後、ツールボックス内に、コントラクト内の操作用のアクティビティ テンプレートが自動的に生成されます。
注意
このトピックでは、コントラクト優先ワークフロー サービスを作成する手順について説明します。 コントラクト優先ワークフロー サービスの開発の詳細については、「コントラクト優先ワークフロー サービスの開発」を参照してください。
ワークフロー プロジェクトの作成
Visual Studio で、[ファイル][新しいプロジェクト] の順に選択します。 [テンプレート] ツリーで [C#] ノードの下にある [WCF] ノードを選択し、 [WCF ワークフロー サービス アプリケーション] テンプレートを選択します。
プロジェクトに
ContractFirst
という名前を付けて、[OK] をクリックします。
サービス コントラクトの作成
ソリューション エクスプローラーでプロジェクトを右クリックして、 [追加] 、 [新しい項目] を選択します。 左側で [コード] ノードを選択し、右側で [クラス] テンプレートを選択します。 新しいクラスに
IBookService
という名前を付け、[OK] をクリックします。表示されるコード ウィンドウの上部で、
using
ディレクティブをSystem.ServiceModel
に追加します。using System.ServiceModel;
サンプルのクラス定義を次のインターフェイス定義に変更します。
[ServiceContract] public interface IBookService { [OperationContract] void Buy(string bookName); [OperationContract(IsOneWay=true)] void Checkout(); }
Ctrl キーと Shift キーを押しながら B キーを押して、プロジェクトをビルドします。
サービス コントラクトのインポート
ソリューション エクスプローラーでプロジェクトを右クリックし、 [サービス コントラクトのインポート] をクリックします。 [<現在のプロジェクト>] の下で、すべてのサブノードを開き、IBookService を選択します。 [OK] をクリックします。
ダイアログが表示され、操作が正常に完了したことと、プロジェクトをビルドすると、生成されたアクティビティがツールボックスに表示されることが示されます。 [OK] をクリックします。
Ctrl キーと Shift キーを押しながら B キーを押してプロジェクトをビルドすると、インポートしたアクティビティがツールボックスに表示されます。
ソリューション エクスプローラーで、Service1.xamlx を開きます。 ワークフロー サービスがデザイナーに表示されます。
Sequence アクティビティを選択します。 プロパティ ウィンドウで、ImplementedContract プロパティの […] ボタンをクリックします。 [型コレクション エディター] ウィンドウが表示されたら、[型] ボックスをクリックし、[型の参照…] エントリを選択します。 [参照して .Net の種類を選択] ダイアログ ボックスの [<現在のプロジェクト>] の下で、すべてのサブノードを開き、IBookService を選択します。 [OK] をクリックします。 [型コレクション エディター] ダイアログで [OK] をクリックします。
ReceiveRequest アクティビティと SendResponse アクティビティを選択して削除します。
ツールボックスから Buy_ReceiveAndSendReply アクティビティと Checkout_Receive アクティビティを "シーケンシャル サービス" アクティビティ上にドラッグします。
.NET