Share via


Designer de atividade de InvokeMethod

O designer de InvokeMethod é usado para criar e configurar uma atividade de InvokeMethod.

A atividade de InvokeMethod

InvokeMethod chama um método público de um objeto ou tipo especificado.

Como usar o designer de atividade de InvokeMethod

Acesse o designer de atividade InvokeMethod na categoria Primitivos da Caixa de Ferramentas. O designer de atividade InvokeMethod pode ser arrastado da Caixa de Ferramentas e ser solto sobre a superfície do Designer de Fluxo de Trabalho onde as atividades nunca são colocadas em geral, como em Sequence. Soltar o designer de atividade cria uma atividade InvokeMethod com um DisplayName padrão de InvokeMethod. O DisplayName pode ser editado no cabeçalho do designer de atividade de InvokeMethod ou na caixa de DisplayName da grade de propriedade.

As propriedades de InvokeMethod

A tabela a seguir mostra as propriedades de InvokeMethod e descreve como elas são usadas no designer. Essas propriedades podem ser editadas na grade de propriedades, e algumas podem ser editadas na superfície do Designer de Fluxo de Trabalho.

Nome da propriedade Obrigatório Uso
DisplayName Falso O nome amigável de atividade de InvokeMethod . O valor padrão é InvokeMethod.

Embora o DisplayName não seja estritamente necessário, é melhor usar um.
MethodName verdadeiro O nome do método a ser chamado quando a atividade executar. O método chamado deve ser declarado como público. Esta propriedade pode ser editada na superfície de designer e é obrigatória.
Parameters Falso A coleção de parâmetros do método chamado. Os parâmetros devem ser adicionados à coleção na mesma ordem que eles aparecem na assinatura de método. Para exibir a caixa de diálogo Parâmetros em que você pode definir essa propriedade, clique no botão de reticências no campo Parâmetros da grade de propriedades. Clique no botão de Criar Argumento para adicionar os parâmetros.
Result Falso O valor de retorno de chamada de método.
RunAsynchronously verdadeiro Especifica se o método é chamado de forma assíncrona. O valor padrão é Falso.
TargetObject Falso O objeto que contém o método para chamar. Esta propriedade pode ser editada na superfície de designer.

TargetObject ou TargetType são necessários para ser definidos.
TargetType Falso O tipo de TargetObject. Esta propriedade pode ser editada na superfície de designer. Esta propriedade deve ser definida somente se o método é chamado estático.

Para passar parâmetros como C# de saída (por exemplo, Method1(out myParam)), use OutArgument em vez de InOutArgument

Métodos com argumentos chamados TargetObject ou Result não podem ser invocados usando a atividade InvokeMethod. A razão para isso é que registros de atividade de InvokeMethodGenericTypeArguments, TargetObject e Result em CacheMetadata.

O algoritmo para registrar os parâmetros em CacheMetadata é mostrado na lista a seguir:

  1. Argumento de TargetObject do registro.

  2. Argumento de Result do registro.

  3. Iterar através da coleção de Parameters e registrar cada argumento.

A exceção resultante é do tipo InvalidWorkflowException com a seguinte mensagem: “InvokeMethod”: Uma variável, RuntimeArgument ou um DelegateArgument já existem com o nome “TargetObject”. Nomes devem ser exclusivos dentro do escopo de ambiente.

Essa restrição não se aplica a TargetType ou RunAsynchronously. Esses não são argumentos de fluxo de trabalho e, portanto, não são registrados na coleção GenericTypeArguments da atividade InvokeMethod no método CacheMetadata.

Confira também