Compartilhar via


Classe base de NativeActivity

NativeActivity é uma classe abstrata com um construtor protegido. Como CodeActivity, NativeActivity é usado para gravar o comportamento obrigatório implementando um método de Execute . Ao contrário de CodeActivity, NativeActivity tem acesso a todos os recursos expostos em runtime de fluxo de trabalho através do objeto de NativeActivityContext passado para o método de Execute .

Usando NativeActivityContext

Recursos de runtime de fluxo de trabalho podem ser acessados de dentro do método de Execute usando membros de parâmetro de context , do tipo NativeActivityContext. Os recursos NativeActivityContext direto disponível incluem o seguinte:

Para criar uma atividade personalizado que herda de NativeActivity

  1. OpenVisual Studio 2010.

  2. Selecione Arquivo, Novo e, em seguida, Projeto. Selecione Workflow 4.0 em Visual C# na janela Project Types e selecione o nó v2010. Selecione Biblioteca de atividades na janela de Modelos. Nomeie o novo projeto HelloActivity.

  3. Clique com o botão direito do mouse Activity1.xaml no projeto de HelloActivity e selecione Excluir.

  4. Clique com o botão direito do mouse no projeto de HelloActivity e selecione Adicionar e, seguida, Classe. Nomeie a nova classe HelloActivity.cs.

  5. No arquivo de HelloActivity.cs, adicione as seguintes diretivas de using .

    using System.Activities;
    using System.Activities.Statements;
    
  6. Faça a nova classe herdar de NativeActivity adicionando uma classe base para a declaração de classe.

    class HelloActivity : NativeActivity
    
  7. Adicionar funcionalidade à classe adicionando um método de Execute .

    protected override void Execute(NativeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. Substitua o método de CacheMetadata e chamar o método apropriado no para permitir que o runtime de fluxo de trabalho aprender sobre variáveis personalizados, os argumentos, os filhos, e os representantes de atividade. Para obter mais informações consulte a classe de NativeActivityMetadata .

  9. Use o objeto de NativeActivityContext para agendar um indexador. Consulte Bookmarks para obter detalhes sobre como criar, agendar, e retomar um indexador.

    protected override void Execute(NativeActivityContext context)
        {
            // Create a Bookmark and wait for it to be resumed.
            context.CreateBookmark(BookmarkName.Get(context),
                new BookmarkCallback(OnResumeBookmark));
        }