Partilhar via


Classe base NativeActivity

NativeActivity é uma classe abstrata com um construtor protegido. Como CodeActivity, NativeActivity é usado para escrever comportamento imperativo implementando um Execute método. Ao contrário CodeActivitydo , NativeActivity tem acesso a todos os recursos expostos do tempo de execução do fluxo de trabalho através do NativeActivityContext objeto passado para o Execute método.

Usando NativeActivityContext

Os recursos do tempo de execução do fluxo de trabalho podem ser acessados de dentro do Execute método usando membros do context parâmetro, do tipo NativeActivityContext. Os recursos disponíveis incluem NativeActivityContext o seguinte:

Para criar uma atividade personalizada 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 Modelos . Nomeie o novo projeto como HelloActivity.

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

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

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

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

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

    protected override void Execute(NativeActivityContext context)
    {
        Console.WriteLine("Hello World!");
    }
    
  8. Substitua o CacheMetadata método e chame o método Add apropriado para permitir que o tempo de execução do fluxo de trabalho saiba sobre as variáveis, argumentos, filhos e delegados da atividade personalizada. Para obter mais informações, consulte a NativeActivityMetadata classe.

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

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