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 de CodeActivity, NativeActivity tem acesso a todos os recursos expostos do tempo de execução do fluxo de trabalho através do objeto NativeActivityContext passado para o método Execute.

Usando NativeActivityContext

Os recursos do tempo de execução do fluxo de trabalho podem ser acessados dentro do método Execute usando membros do parâmetro context, do tipo NativeActivityContext. Os recursos disponíveis através de NativeActivityContext incluem 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 Tipos de Projeto 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 de NativeActivity adicionando uma classe base à declaração da 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 método CacheMetadata e chame o método Add apropriado para que o tempo de execução conheça 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));
        }