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.
Há várias opções disponíveis para transferir dados para uma atividade. Além de usar InArgument, também podem ser desenvolvidas atividades que recebem dados usando propriedades CLR padrão ou propriedades públicas ActivityAction. Este tópico discute como selecionar o tipo de método apropriado.
Usando propriedades de CLR
Ao passar dados para uma atividade, as propriedades CLR (ou seja, métodos públicos que usam rotinas Get e Set para expor dados) são a opção que tem mais restrições. O valor de um parâmetro passado para uma propriedade CLR deve ser conhecido quando a solução é compilada; esse valor será o mesmo para cada instância do fluxo de trabalho. Dessa forma, um valor passado para uma propriedade CLR é semelhante a uma constante definida no código; esse valor não pode ser alterado durante a vida útil da atividade e não pode ser alterado para instâncias diferentes da atividade. MethodName é um exemplo de uma propriedade CLR exposta por uma atividade; o nome do método que a atividade chama não pode ser alterado com base nas condições de tempo de execução e será o mesmo para cada instância da atividade.
Usando argumentos
Os argumentos devem ser usados quando os dados são avaliados apenas uma vez durante o tempo de vida da atividade; ou seja, seu valor não será alterado durante o tempo de vida da atividade, mas o valor pode ser diferente para instâncias diferentes da atividade. Condition é um exemplo de um valor que é avaliado uma vez; portanto, ele é definido como um argumento. Text é outro exemplo de um método que deve ser definido como um argumento, pois ele só é avaliado uma vez durante a execução da atividade, mas pode ser diferente para instâncias diferentes da atividade.
Usando ActivityAction
Quando os dados precisam ser avaliados várias vezes durante o tempo de vida da execução de uma atividade, um ActivityAction deve ser usado. Por exemplo, a Condition propriedade é avaliada para cada iteração do While loop. Se um InArgument fosse usado para essa finalidade, o loop nunca sairia, pois o argumento não seria reavaliado para cada iteração e sempre retornaria o mesmo resultado.