Partilhar via


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

  1. Inicie o Visual Studio 2010.

  2. No menu Arquivo, aponte para Novo e selecione Projeto.

    A caixa de diálogo Novo projeto é aberta.

  3. 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.

  4. No painel Modelos, selecione Biblioteca de atividades.

  5. Na caixa Nome, digite DelayActivityTemplate.

  6. Aceite os padrões nas caixas de texto Local e Nome da solução e clique em OK.

  7. 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.

  8. 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.

  9. Repita este procedimento para adicionar referências aos arquivos System.Activities.Presentation.dll e WindowsBase.dll.

  10. 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.

  11. Selecione o modelo de classe, nomeie-o MyDelayTemplate e clique em OK.

  12. 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;
    
  13. 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)
    
            };
        }
    }
    
  14. Selecione Build Solution no menu Build para gerar o arquivo DelayActivityTemplate.dll.

Para disponibilizar o modelo em um Designer de Fluxo de Trabalho

  1. 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.

  2. Selecione o modelo Aplicativo de Console de Fluxo de Trabalho, nomeie-o CustomActivityTemplateAppe clique em OK.

  3. 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.

  4. 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.

  5. Clique com o botão direito do mouse no projeto CustomActivityTemplateApp no Gerenciador de Soluções e escolha Compilar para compilar o aplicativo.

  6. Clique com o botão direito do mouse no projeto CustomActivityTemplateApp no Gerenciador de Soluções e escolha Definir como Projeto de Inicialização.

  7. Selecione Iniciar sem depuração no menu Depurar e pressione qualquer tecla para continuar quando solicitado na janela cmd.exe.

  8. Abra o arquivo Workflow1.xaml e abra a Caixa de Ferramentas.

  9. 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)

            };
        }
    }
}

Consulte também