Como: criar um modelo personalizado de atividades
Modelos personalizados de atividade são usados para personalizar a configuração de atividades, incluindo atividades compostas personalizados, para que os usuários não tem que criar cada atividade individualmente e configurar suas propriedades e outras configurações manualmente. Esses modelos personalizados podem estar disponíveis na Caixa de Ferramentas do Designer de Fluxo de Trabalho do Windows ou em um designer hospedado novamente, do qual os usuários podem arrastá-los para a superfície de design pré-configurada. O Designer de Fluxo de Trabalho é fornecido com bons exemplos desses modelos: o Designer de Modelo SendAndReceiveReply e o Designer de Modelo ReceiveAndSendReply na categoria Designers de Atividades de Mensagens.
O primeiro procedimento deste tópico descreve como criar um modelo personalizado de atividade para uma atividade de Atraso e o segundo procedimento descreve brevemente como disponibilizá-lo em um Designer de Fluxo de Trabalho para verificar se o modelo personalizado funciona.
Modelos personalizados de atividade devem implementar IActivityTemplateFactory. A interface possui um único método de Create com que você pode criar e configurar as instâncias da atividade usadas no modelo.
Para criar um modelo para atividades de atraso
Inicie o Visual Studio 2010.
No menu Arquivo , aponte para Novoe selecione Projeto.
A caixa de diálogo Novo Projeto será aberta.
No painel Tipos de Projetos, selecione Fluxo de Trabalho nos projetos Visual C# ou nos agrupamentos Visual Basic, dependendo da sua preferência de linguagem.
No painel Modelos, selecione Biblioteca de Atividades.
Na caixa Nome, insira
DelayActivityTemplate
.Aceite os padrões nas caixas de texto Local e Nome da solução e clique em OK.
Clique com o botão direito do mouse no diretório Referências do projeto DelayActivityTemplate em Gerenciador de Soluções e escolha Adicionar Referência para abrir a caixa de diálogo Adicionar Referência.
Acesse a guia .NET, selecione PresentationFramework na coluna Nome do Componente à esquerda e clique em OK para adicionar uma referência ao arquivo PresentationFramework.dll.
Repita este procedimento para adicionar referências para System.Activities.Presentation.dll e arquivos de WindowsBase.dll.
Clique com o botão direito do mouse no projeto DelayActivityTemplate em Gerenciador de Soluções e escolha Adicionar e Novo Item para abrir a caixa de diálogo Adicionar Novo Item.
Selecione o modelo Classe, dê a ele o nome MyDelayTemplate e clique em OK.
Abra o arquivo de MyDelayTemplate.cs e adicione as instruções a seguir.
//Namespaces added using System.Activities; using System.Activities.Statements; using System.Activities.Presentation; using System.Windows;
Implementar IActivityTemplateFactory com a classe de
MyDelayActivity
com o código a seguir. Isso configura o atraso para ter uma duração de 10 segundos.public sealed class MyDelayActivity : IActivityTemplateFactory { public Activity Create(System.Windows.DependencyObject target) { return new System.Activities.Statements.Delay { DisplayName = "DelayActivityTemplate", Duration = new TimeSpan(0, 0, 10) }; } }
Escolha Compilar Solução no menu Compilar para gerar o arquivo DelayActivityTemplate.dll.
Para fazer o modelo disponível em Designer de Fluxo de Trabalho
Clique com o botão direito do mouse na solução DelayActivityTemplate em Gerenciador de Soluções e escolha Adicionar e Novo Projeto para abrir a caixa de diálogo Adicionar Novo Projeto.
Selecione o modelo Aplicativo de Console de Fluxo de Trabalho, dê a ele o nome
CustomActivityTemplateApp
e clique em OK.Clique com o botão direito do mouse no diretório Referências do projeto CustomActivityTemplateApp em Gerenciador de Soluções e escolha Adicionar Referência para abrir a caixa de diálogo Adicionar Referência.
Acesse a guia Projetos, selecione DelayActivityTemplate na coluna Nome do Projeto à esquerda e clique em OK para adicionar uma referência ao arquivo DelayActivityTemplate.dll que você criou no primeiro procedimento.
Clique com o botão direito do mouse no projeto CustomActivityTemplateApp em Gerenciador de Soluções e escolha Compilar para compilar o aplicativo.
Clique com o botão direito do mouse no projeto CustomActivityTemplateApp em Gerenciador de Soluções e escolha Definir como Projeto de Inicialização.
Selecione Iniciar sem Depuração no menu Depurar e pressione qualquer chave para continuar quando solicitado pela janela de cmd.exe.
Abra o arquivo Workflow1.xaml e abra Caixa de Ferramentas.
Localize o modelo MyDelayActivity na categoria DelayActivityTemplate. Arraste-o para a superfície de design. Confirme na janela Propriedades se a propriedade
Duration
foi definida como dez segundos.
Exemplo
O arquivo de MyDelayActivity.cs deve conter o código a seguir.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Namespaces added
using System.Activities;
using System.Activities.Statements;
using System.Activities.Presentation;
using System.Windows;
namespace DelayActivityTemplate
{
public sealed class MyDelayActivity : IActivityTemplateFactory
{
public Activity Create(System.Windows.DependencyObject target)
{
return new System.Activities.Statements.Delay
{
DisplayName = "DelayActivityTemplate",
Duration = new TimeSpan(0, 0, 10)
};
}
}
}