サービスを実装するときは、サービスと、サービスが送受信するデータを記述する多数のコントラクトを定義します。 データは、データ コントラクトとメッセージ コントラクトとして表されます。WCF サービスとワークフロー サービスの両方で、サービスの説明の一部としてデータ コントラクト定義とメッセージ コントラクト定義が使用されます。 サービス自体は、サービスの操作を記述するためにメタデータ (WSDL の形式) を公開します。 WCF では、サービス コントラクトと操作コントラクトによって、サポートされるサービスと操作が定義されます。 ただし、ワークフロー サービスでは、これらのコントラクトはビジネス プロセス自体の一部です。これらは、コントラクト推論と呼ばれるプロセスによってメタデータで公開されます。
コントラクト推論
ワークフロー サービスが WorkflowServiceHostを使用してホストされている場合、ワークフロー定義が調べられ、ワークフロー内で見つかったメッセージング アクティビティのセットに基づいてコントラクトが生成されます。 特に、コントラクトの生成には、次のアクティビティとプロパティが使用されます。
Receive 活動
SendReply 活動
コントラクト推論の最終的な結果は、WCF サービスおよび操作コントラクトと同じデータ構造を使用するサービスの説明です。 この情報は、ワークフロー サービスの WSDL を公開するために使用されます。