Propriedades vs. Argumentos
Há várias opções disponíveis para passar dados para uma atividade. Além de usar InArgumento , 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 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 todas as instâncias do fluxo de trabalho. Desta 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 da atividade e não pode ser alterado para diferentes instâncias 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 todas as instâncias da atividade.
Usando argumentos
Os argumentos devem ser usados quando os dados são avaliados apenas uma vez durante o período de vida da atividade; ou seja, seu valor não mudará durante o tempo de vida da atividade, mas o valor pode ser diferente para diferentes instâncias da atividade. Condition é um exemplo de um valor que é avaliado uma vez; por conseguinte, define-se como um argumento. Text é outro exemplo de um método que deve ser definido como um argumento, uma vez que é avaliado apenas uma vez durante a execução da atividade, mas pode ser diferente para diferentes instâncias da atividade.
Usando o 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 este fim, o loop nunca sairia, uma vez que o argumento não seria reavaliado para cada iteração, e sempre retornaria o mesmo resultado.