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:
Obter e definir os argumentos e variáveis.
Atividades filhos de programação com ScheduleActivity
Anulando a execução da atividade usando Abort.
Cancelando a execução filho usando CancelChild e CancelChildren.
Acesso aos indicadores de atividade usando métodos como CreateBookmark, RemoveBookmark, e ResumeBookmark.
Recursos personalizados de rastreamento que usam Track.
Acesso às propriedades de execução da atividade e propriedades de valor usando GetProperty e GetValue.
Ações e funções de atividade de programação usando o ScheduleAction e o ScheduleFunc.
Para criar uma atividade personalizado que herda de NativeActivity
OpenVisual Studio 2010.
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.
Clique com o botão direito do mouse Activity1.xaml no projeto de HelloActivity e selecione Excluir.
Clique com o botão direito do mouse no projeto de HelloActivity e selecione Adicionar e, seguida, Classe. Nomeie a nova classe HelloActivity.cs.
No arquivo de HelloActivity.cs, adicione as seguintes diretivas de
using
.using System.Activities; using System.Activities.Statements;
Faça a nova classe herdar de NativeActivity adicionando uma classe base para a declaração de classe.
class HelloActivity : NativeActivity
Adicionar funcionalidade à classe adicionando um método de Execute .
protected override void Execute(NativeActivityContext context) { Console.WriteLine("Hello World!"); }
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 .
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)); }