Utilizando contratos no fluxo de trabalho
Ao implementar um serviço, você define uma série de contratos que descrevem o serviço e os dados que ele envia e recebe. Os dados são representados como contratos de dados e contratos de mensagens; tanto o WCF quanto os serviços de fluxo de trabalho usam definições de contrato de dados e contrato de mensagem como parte das descrições de serviço. O próprio serviço expõe metadados (na forma de WSDL) para descrever as operações do serviço. No WCF, os contratos de serviço e os contratos de operação definem o serviço e as operações com as quais ele dá suporte. No entanto, em um serviço de fluxo de trabalho, esses contratos fazem parte do próprio processo empresarial; eles são expostos em metadados por um processo chamado inferência de contrato.
Inferência de contrato
Quando um serviço de fluxo de trabalho é hospedado usando WorkflowServiceHost, a definição de fluxo de trabalho é examinada e um contrato é gerado com base no conjunto de atividades de mensagens encontradas no fluxo de trabalho. Em particular, as seguintes atividades e propriedades são usadas para gerar o contrato:
Receive Atividade
SendReply Atividade
TransactedReceiveScope Atividade
O resultado final da inferência do contrato é uma descrição do serviço usando as mesmas estruturas de dados que os contratos de serviço e operação do WCF. Essas informações são usadas para expor o WSDL para o serviço de fluxo de trabalho.