Como: Criar um modelo de atividade personalizado
Os modelos de atividade personalizados são usados para personalizar a configuração de atividades, incluindo atividades compostas personalizadas, para que os usuários não precisem criar cada atividade individualmente e configurar suas propriedades e outras configurações manualmente. Esses modelos personalizados podem ser disponibilizados na Caixa de Ferramentas no Designer de Fluxo de Trabalho do Windows ou de um designer rehospedado, a partir 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 Atividade de Mensagens .
O primeiro procedimento neste tópico descreve como criar um modelo de atividade personalizado 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.
Os modelos de atividade personalizados devem implementar o IActivityTemplateFactory. A interface tem um único Create método com o qual você pode criar e configurar as instâncias de atividade usadas no modelo.
Para criar um modelo para a atividade Atraso
Inicie o Visual Studio 2010.
No menu Arquivo, aponte para Novo e selecione Projeto.
A caixa de diálogo Novo projeto é aberta.
No painel Tipos de Projeto, selecione Fluxo de Trabalho nos projetos do Visual C# ou agrupamentos do Visual Basic, dependendo da sua preferência de idioma.
No painel Modelos, selecione Biblioteca de atividades.
Na caixa Nome, digite
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 References do projeto DelayActivityTemplate no Gerenciador de Soluções e escolha Adicionar Referência para abrir a caixa de diálogo Adicionar Referência.
Vá para a guia .NET e 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 aos arquivos System.Activities.Presentation.dll e WindowsBase.dll.
Clique com o botão direito do mouse no projeto DelayActivityTemplate no Gerenciador de Soluções e escolha Adicionar e, em seguida, Novo Item para abrir a caixa de diálogo Adicionar Novo Item.
Selecione o modelo de classe, nomeie-o MyDelayTemplate e clique em OK.
Abra o arquivo 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;
Implemente o IActivityTemplateFactory com a
MyDelayActivity
classe 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) }; } }
Selecione Build Solution no menu Build para gerar o arquivo DelayActivityTemplate.dll.
Para disponibilizar o modelo em um Designer de Fluxo de Trabalho
Clique com o botão direito do mouse na solução DelayActivityTemplate no Gerenciador de Soluções e escolha Adicionar e, em seguida, Novo Projeto para abrir a caixa de diálogo Adicionar Novo Projeto.
Selecione o modelo Aplicativo de Console de Fluxo de Trabalho, nomeie-o
CustomActivityTemplateApp
e clique em OK.Clique com o botão direito do mouse no diretório References do projeto CustomActivityTemplateApp no Gerenciador de Soluções e escolha Adicionar Referência para abrir a caixa de diálogo Adicionar Referência.
Vá para a guia Projetos e 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 no Gerenciador de Soluções e escolha Compilar para compilar o aplicativo.
Clique com o botão direito do mouse no projeto CustomActivityTemplateApp no Gerenciador de Soluções e escolha Definir como Projeto de Inicialização.
Selecione Iniciar sem depuração no menu Depurar e pressione qualquer tecla para continuar quando solicitado na janela cmd.exe.
Abra o arquivo Workflow1.xaml e abra a Caixa de Ferramentas.
Localize o modelo MyDelayActivity na categoria DelayActivityTemplate . Arraste-o para a superfície de design. Confirme na janela Propriedades que a
Duration
propriedade foi definida como 10 segundos.
Exemplo
O arquivo 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)
};
}
}
}