ワークフロー内でのコントラクトの使用Using Contracts in Workflow

サービスを実装するときは、サービスおよびサービスが送受信するデータを説明する一連のコントラクトを定義します。When implementing a service, you define a number of contracts that describe the service and the data that it sends and receives. データは、データ コントラクトとメッセージ コントラクト; として表されます。WCF とワークフローの両方のサービスは、サービスの説明の一部として、データ コントラクトとメッセージ コントラクトの定義を使用します。The data is represented as data contracts and message contracts; both WCF and workflow services use data contract and message contract definitions as part of service descriptions. サービス自体は、(WSDL の形で) メタデータを公開して、サービスの操作を説明します。The service itself exposes metadata (in the form of WSDL) in order to describe the operations of the service. WCF では、サービス コントラクトと操作コントラクトによって、サービス、およびサービスがサポートする操作を定義します。In WCF, service contracts and operation contracts define the service and the operations it supports. ただし、ワークフロー サービスでは、これらのコントラクトはビジネス プロセス自体の一部になり、コントラクト推論と呼ばれるプロセスによってメタデータとして公開されます。However, in a workflow service, these contracts are part of the business process itself; they are exposed in metadata by a process called contract inference.

コントラクト推論Contract Inference

ワークフロー サービスが WorkflowServiceHost を使用してホストされている場合は、ワークフローで見つかった一連のメッセージ アクティビティに基づいて、ワークフロー定義が確認され、コントラクトが生成されます。When a workflow service is hosted using WorkflowServiceHost, the workflow definition is examined and a contract is generated based on the set of messaging activities found in the workflow. 具体的には、次のアクティビティとプロパティが、コントラクトの生成に使用されます。In particular the following activities and properties are used to generate the contract:

Receive アクティビティReceive Activity

SendReply アクティビティSendReply Activity

TransactedReceiveScope アクティビティTransactedReceiveScope Activity

コントラクト推論の結果は、WCF サービスと操作コントラクトと同じデータ構造を使用するサービスの説明になります。The end result of contract inference is a description of the service using the same data structures as WCF service and operation contracts. この情報を使用して、ワークフロー サービス用に WSDL が公開されます。This information is then used to expose WSDL for the workflow service.

関連項目See also