Concepteur d'activités InvokeMethod

Le concepteur InvokeMethod permet de créer et configurer une activité InvokeMethod.

Activité InvokeMethod

InvokeMethod appelle une méthode publique d'un objet ou d'un type spécifié.

Utilisation du concepteur d’activités InvokeMethod

Accédez au concepteur d’activités InvokeMethod dans la catégorie Primitives de la Boîte à outils. Le concepteur d’activités InvokeMethod peut être déplacé de la boîte à outils et déposé dans la surface du Concepteur de flux de travail, là où les activités sont généralement placées, par exemple dans un objet Sequence. La suppression du concepteur d’activités crée une activité InvokeMethod avec la valeur par défaut DisplayName InvokeMethod. La propriété DisplayName peut être modifiée dans l’en-tête du concepteur d’activités InvokeMethod ou dans la zone DisplayName de la grille des propriétés.

Propriétés d’InvokeMethod

Le tableau suivant présente les propriétés de InvokeMethod et décrit comment elles sont utilisées dans le concepteur. Ces propriétés peuvent être modifiées dans la grille des propriétés et certaines d’entre elles peuvent être modifiées dans l’aire du Concepteur de flux de travail.

Nom de la propriété Obligatoire Usage
DisplayName False Nom convivial de l'activité InvokeMethod. La valeur par défaut est InvokeMethod.

Bien que la propriété DisplayName ne soit pas strictement obligatoire, il est recommandé d’en utiliser une.
MethodName True Nom de la méthode à appeler lorsque l'activité s'exécute. La méthode appelée doit être déclarée comme public. Cette propriété peut être modifiée sur l’aire du concepteur et est obligatoire.
Parameters False Collection de paramètres de la méthode appelée. Les paramètres doivent être ajoutés à la collection selon leur ordre d’affichage dans la signature de méthode. Pour afficher la boîte de dialogue Paramètres dans laquelle vous pouvez définir cette propriété, cliquez sur le bouton de sélection dans le champ Paramètres de la grille de propriétés. Cliquez sur le bouton Créer un argument pour ajouter les paramètres.
Result False Valeur de retour de l'appel de méthode.
RunAsynchronously True Spécifie si la méthode est appelée de façon asynchrone. La valeur par défaut est False.
TargetObject False Objet qui contient la méthode à appeler. Cette propriété peut être modifiée dans l'aire du concepteur.

La propriété TargetObject ou TargetType doit obligatoirement être définie.
TargetType False Type d'élément TargetObject. Cette propriété peut être modifiée dans l'aire du concepteur. Elle doit être définie uniquement si la méthode appelée est statique.

Pour passer des paramètres en tant que paramètre de sortie C# (par exemple, Method1(out myParam)), utilisez OutArgument au lieu de InOutArgument

Les méthodes comportant des arguments appelés TargetObject ou Result ne peuvent pas être appelées à l’aide de l’activité InvokeMethod. En effet, l'activité InvokeMethod inscrit GenericTypeArguments, TargetObject et Result dans CacheMetadata.

L'algorithme permettant d'inscrire les paramètres dans CacheMetadata est présenté dans la liste suivante :

  1. Inscrivez l'argument TargetObject.

  2. Inscrivez l'argument Result.

  3. Effectuez une itération au sein de la collection Parameters et inscrivez chaque argument.

L'exception obtenue est de type InvalidWorkflowException avec le message suivant : 'InvokeMethod' : Une variable, un RuntimeArgument ou un DelegateArgument, portant le nom 'TargetObject' existe déjà. Les noms doivent être uniques au sein de la portée de l'environnement.

Cette restriction ne s’applique pas aux instructions TargetType et RunAsynchronously. Ce ne sont pas des arguments de workflow et ils ne sont donc pas inscrits dans la collection GenericTypeArguments de l’activité InvokeMethod dans la méthode CacheMetadata.

Voir aussi