Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As atividades criadas por herança de CodeActivity podem implementar o comportamento básico obrigatório substituindo o método de Execute .
Usando CodeActivityContext
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 CodeActivityContext. Os recursos disponíveis através de CodeActivityContext incluem o seguinte:
Obtendo e definindo os valores de variáveis e argumentos.
Recursos de acompanhamento personalizados usando Track.
Acesso às propriedades de execução da atividade usando GetProperty.
Para criar uma atividade personalizada que herda do CodeActivity
Abra o Visual Studio 2010.
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.
Clique com o botão direito do mouse em Activity1.xaml no projeto HelloActivity e selecione Excluir.
Clique com o botão direito do mouse no projeto HelloActivity e selecione Adicionar e, em seguida, Classe. Nomeie a nova classe HelloActivity.cs.
No arquivo HelloActivity.cs, adicione as seguintes
usingdiretivas.using System.Activities; using System.Activities.Statements;Faça a nova classe herdar de CodeActivity ao adicionar uma classe base à declaração da classe.
class HelloActivity : CodeActivityAdicione funcionalidade à classe adicionando um Execute método.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); }Use o CodeActivityContext para criar um registro de acompanhamento.
protected override void Execute(CodeActivityContext context) { Console.WriteLine("Hello World!"); CustomTrackingRecord record = new CustomTrackingRecord("MyRecord"); record.Data.Add(new KeyValuePair<String, Object>("ExecutionTime", DateTime.Now)); context.Track(record); }