Compartilhar via


Propriedades versus Arguments

Há várias opções disponíveis para passar dados em uma atividade. Além de usar de InArgument, as atividades também podem ser desenvolvidas que recebem dados usando propriedades padrão de CLR ou propriedades públicas de ActivityAction . Este tópico discute como selecionar o tipo apropriado do método.

Usando propriedades de CLR

Para passar dados em uma atividade, as propriedades de CLR (isto é, os métodos públicos que usam conseguem e definem rotinas para expor dados) são a opção que tem a maioria de restrições. O valor de um parâmetro passado em uma propriedade de CLR deve ser conhecido quando a solução é criado; esse valor será o mesmo para cada instância de fluxo de trabalho. Dessa forma, um valor passado em uma propriedade de CLR é semelhante a uma constante definida no código; esse valor não pode mudar durante a vida útil de atividade, e não pode ser alterado para instâncias diferentes de atividade. MethodName é um exemplo de uma propriedade de CLR exposta por uma atividade; o nome do método que a atividade chama não pode ser alterado com base em condições de runtime, e será o mesmo para cada instância de atividade.

Usando argumentos

Os argumentos devem ser usados quando os dados são avaliados apenas uma vez durante o tempo de vida de atividade; isto é, o valor não será alterado durante o tempo de vida da atividade, mas o valor pode ser diferente para instâncias diferentes de atividade. Condition é um exemplo de um valor que seja avaliada; uma vez portanto é definido como um argumento. Text é um exemplo de um método que deve ser definido como um argumento, desde que é avaliado apenas uma vez durante a execução da atividade, mas pode ser diferente para instâncias diferentes de atividade.

Usando ActivityAction

Quando os dados precisam ser avaliado várias vezes durante o tempo de vida de execução de uma atividade, ActivityAction deve ser usado. Por exemplo, a propriedade de Condition é avaliada para cada iteração do loop de While . Se InArgument foi usado para essa finalidade, o loop nunca sairia, como o argumento não seria reavaliado para cada iteração, e retornaria sempre o mesmo resultado.