Compartilhar via


Classe base de NativeActivity

NativeActivity é uma classe abstrata com um construtor protegido. Como CodeActivity, NativeActivity é usado para escrever o comportamento imperativo implementando um Execute método. Ao contrário de CodeActivity, NativeActivity tem acesso a todos os recursos expostos do runtime do fluxo de trabalho por meio do objeto NativeActivityContext passado para o método 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 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 Fluxo de Trabalho 4.0 no Visual C# na janela Tipos de Projeto 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 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 ao adicionar 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 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 NativeActivityMetadata classe.

  9. Use o objeto NativeActivityContext para agendar um marcador. 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));
        }