Como: criar um serviço de fluxo de trabalho que consome um contrato de serviço existente

O .NET Framework 4.5 apresenta melhor integração entre serviços Web e fluxos de trabalho na forma de desenvolvimento de fluxo de trabalho de primeiro contrato. A ferramenta de desenvolvimento de fluxo de trabalho de primeiro contrato permite que você crie o contrato no código primeiro. A ferramenta em seguida gera automaticamente um modelo de atividade na caixa de ferramentas para as operações no contrato.

Observação

Este tópico fornece orientação passo a passo sobre como criar um serviço de fluxo de trabalho de primeiro contrato. Para obter mais informações sobre o desenvolvimento do serviço de fluxo de trabalho do tipo primeiro contrato, consulte Desenvolvimento do Serviço de Fluxo de Trabalho de Primeiro Contrato.

Criando o projeto de fluxo de trabalho

  1. No Visual Studio, selecione Arquivo, Novo Projeto. Selecione o nó do WCF no nó C# na árvore Templates e selecione o modelo Aplicativo de serviço de fluxo de trabalho do WCF.

  2. Nomeie o novo projeto ContractFirst e clique em Ok.

Criando o contrato de serviço

  1. Clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Adicionar, Novo Item…. Selecione o nó Código à esquerda e o modelo Classe à direita. Nomeie a nova classe como IBookService e clique em Ok.

  2. Na parte superior da janela de código que aparece, adicione uma instrução Using a System.ServiceModel.

    using System.ServiceModel;  
    
  3. Altere a definição de classe de exemplo à seguinte definição da interface.

    [ServiceContract]  
        public interface IBookService  
        {  
            [OperationContract]  
            void Buy(string bookName);  
    
            [OperationContract(IsOneWay=true)]  
            void Checkout();  
        }  
    
  4. Compile o projeto pressionando Ctrl+Shift+B.

Importando o contrato de serviço

  1. Clique com o botão direito no projeto no Gerenciador de Soluções e selecione Importar Contrato de Serviço. Em <Projeto Atual>, abra todos os subnós e selecione IBookService. Clique em OK.

  2. Uma caixa de diálogo abrirá, alertando-o de que a operação foi concluída com êxito e que as atividades geradas serão exibidas na caixa de ferramentas depois que você compilar o projeto. Clique em OK.

  3. Compile o projeto pressionando Ctrl+Shift+B, para que as atividades importadas apareçam na caixa de ferramentas.

  4. Em Gerenciador de Soluções, abra Service1.xamlx. O serviço de fluxo de trabalho aparecerá no designer.

  5. Selecione a atividade Sequência. Na janela Propriedades, clique no botão na propriedade ImplementedContract. Na janela Editor de Coleção de Tipo exibida, clique no menu suspenso Tipo e selecione a entrada Procurar Tipos…. Na caixa de diálogo Procurar e Selecionar um Tipo .Net, em <Projeto Atual>, abra todos os subnós e selecione IBookService. Clique em OK. Na caixa de diálogo Editor de Coleção de Tipo, clique em OK.

  6. Selecione e exclua as atividades ReceiveRequest e SendResponse.

  7. Na caixa de ferramentas, arraste uma atividade Buy_ReceiveAndSendReply e Checkout_Receive para a atividade Serviço Sequencial.