Como: acessar um serviço de um aplicativo de fluxo de trabalho
Este tópico descreve como chamar um serviço de fluxo de trabalho de um aplicativo de console de fluxo de trabalho. Ele depende da conclusão do tópico Como criar um serviço de fluxo de trabalho com atividades de mensagens. Embora este tópico descreva como chamar um serviço de fluxo de trabalho de um aplicativo de fluxo de trabalho, os mesmos métodos podem ser usados para chamar qualquer serviço do WCF (Windows Communication Foundation) de um aplicativo de fluxo de trabalho.
Criar um projeto de aplicativo do console de fluxo de trabalho
Inicie o Visual Studio 2012.
Carregue o projeto MyWFService criado no tópico Como criar um serviço de fluxo de trabalho com atividades de mensagens.
Clique com o botão direito do mouse na solução MyWFService no Gerenciador de Soluções e selecione Adicionar, Novo Projeto. Selecione Fluxo de Trabalho em Modelos Instalados e Aplicativo de Console de Fluxo de Trabalho na lista de tipos de projeto. Nomeie o projeto MyWFClient e use o local padrão conforme mostrado na ilustração a seguir.
Clique no botão OK para descartar o diálogo Adicionar Novo Projeto.
Depois que o projeto é criado, o arquivo Workflow1.xaml é aberto no designer. Clique na guia Caixa de ferramentas para abrir a caixa de ferramentas se ainda não estiver aberta e clique no pino de fixação para manter a janela da caixa de ferramentas aberta.
Pressione Ctrl+F5 para compilar e iniciar o serviço. Como antes, o ASP.NET Development Server é iniciado e o navegador exibe a página de ajuda do WCF. Observe o URI desta página, pois você precisará usá-la na próxima etapa.
Clique com o botão direito do mouse no projeto MyWFClient no Gerenciador de Soluções e selecione Adicionar>Referência de Serviço. Clique no botão Descobrir para pesquisar um serviço na solução atual. Clique no triângulo ao lado de Service1.xamlx na lista de serviços. Clique no triângulo ao lado de Service1 para listar os contratos implementados pelo serviço Service1. Expanda o nó Service1 na lista Serviços. A operação de eco é exibida na lista Operações conforme mostrado na ilustração a seguir.
Mantenha o namespace padrão e clique em OK para descartar o diálogo Adicionar Referência de Serviço. O diálogo a seguir é exibido.
Clique em OK para descartar o diálogo. Em seguida, pressione CTRL+SHIFT+B para criar a solução. Observe na caixa de ferramentas que uma nova seção foi adicionada, chamada MyWFClient.ServiceReference1.Activities. Expanda essa seção e observe a atividade Echo que foi adicionada conforme mostrado na ilustração a seguir.
Arraste e solte uma atividade Sequence na superfície do designer. Ela está na seção Fluxo de Controle da caixa de ferramentas.
Com a atividade Sequence em foco, clique no link Variáveis e adicione uma variável de cadeia de caracteres chamada
inString
. Dê à variável um valor padrão de"Hello, world"
, bem como uma variável de cadeia de caracteres chamadaoutString
, conforme mostrado no diagrama a seguir.Arraste e solte uma atividadeEcho no Sequence. Na janela de propriedades, associe o argumento
inMsg
à variávelinString
e o argumentooutMsg
à variáveloutString
, conforme mostrado na ilustração a seguir. Isso transmite o valor da variávelinString
à operação e, em seguida, pega o valor de retorno e o coloca na variáveloutString
.Arraste e solte uma atividade WriteLine abaixo da atividade Echo para exibir a cadeia de caracteres retornada pela chamada de serviço. A atividade WriteLine está localizada no nó Primitives na caixa de ferramentas. Vincule o argumento deText da atividade WriteLine à variável
outString
digitandooutString
na caixa de texto na atividade WriteLine. O fluxo de trabalho agora deve ser semelhante à ilustração a seguir.Clique com o botão direito do mouse na solução MyWFService e selecione Definir Projetos de Inicialização. Selecione o botão de opção Vários projetos de inicialização e selecione Iniciar para cada projeto na coluna Ação, conforme mostrado na ilustração a seguir.
Pressione Ctrl+F5 para iniciar o serviço e o cliente. O ASP.NET Development Server hospeda o serviço, o navegador exibe a página de ajuda do WCF e o aplicativo de fluxo de trabalho do cliente é iniciado em uma janela do console e exibe a cadeia de caracteres retornada do serviço ("Olá, mundo").