InvokeMethod-Aktivitätsdesigner
InvokeMethod-Designer wird verwendet, um eine InvokeMethod-Aktivität zu erstellen und zu konfigurieren.
Die InvokeMethod-Aktivität
Die InvokeMethod-Aktivität ruft eine öffentliche Methode eines angegebenen Objekts oder Typs auf.
Verwenden des InvokeMethod-Aktivitäts-Designers
Greifen Sie auf den InvokeMethod-Aktivitäts-Designer in der Kategorie Primitive der Toolbox zu. Der InvokeMethod-Aktivitäts-Designer kann aus der Toolbox gezogen und auf der Workflow-Designer-Oberfläche dort abgelegt werden, wo Aktivitäten normalerweise platziert werden, etwa innerhalb einer Sequence. Durch das Ablegen des Aktivitäts-Designers wird eine InvokeMethod-Aktivität mit „InvokeMethod“ als Standardwert für DisplayName erstellt. Der DisplayName-Wert kann im Header des InvokeMethod-Aktivitäts-Designers oder im Feld DisplayName des Eigenschaftenrasters bearbeitet werden.
Die InvokeMethod-Eigenschaften
In der folgenden Tabelle werden die InvokeMethod-Eigenschaften aufgeführt, und es wird beschrieben, wie sie im Designer verwendet werden. Diese Eigenschaften können im Eigenschaftenraster bearbeitet werden, einige auf der Oberfläche des Workflow-Designers.
Eigenschaftenname | Erforderlich | Verwendung |
---|---|---|
DisplayName | Falsch | Der Anzeigename der InvokeMethod-Aktivität. Der Standardwert lautet InvokeMethod. Obwohl der DisplayName nicht zwingend erforderlich ist, wird empfohlen, einen Anzeigenamen zu verwenden. |
MethodName | True | Der Name der Methode, die bei Ausführung der Aktivität aufgerufen werden soll. Die aufgerufene Methode muss als public-Methode deklariert worden sein. Diese Eigenschaft kann in der Designeroberfläche bearbeitet werden und ist obligatorisch. |
Parameters | False | Die Parameterauflistung der aufgerufenen Methode. Die Parameter müssen der Auflistung in derselben Reihenfolge wie in der Methodensignatur hinzugefügt werden. Zum Anzeigen des Dialogfelds Parameter, in dem Sie diese Eigenschaft festlegen können, klicken Sie im Feld Parameter des Eigenschaftenrasters auf die Schaltfläche mit den Auslassungspunkten. Klicken Sie auf die Schaltfläche Argument erstellen, um die Parameter hinzuzufügen. |
Result | False | Der Rückgabewert des Methodenaufrufs. |
RunAsynchronously | True | Gibt an, ob die Methode asynchron aufgerufen wird. Der Standardwert ist False. |
TargetObject | False | Das Objekt, das die aufzurufende Methode enthält. Diese Eigenschaft kann in der Designeroberfläche bearbeitet werden. Es muss entweder das TargetObject-Objekt oder der TargetType-Typ festgelegt werden. |
TargetType | False | Der TargetObject-Typ. Diese Eigenschaft kann in der Designeroberfläche bearbeitet werden. Diese Eigenschaft muss nur festgelegt werden, wenn die aufgerufene Methode statisch ist. |
Zum Übergeben von Parametern als C#-out-Parameter (z. B. Method1(out myParam))
) verwenden Sie OutArgument anstelle von InOutArgument.
Methoden mit Argumenten namens TargetObject oder Result können nicht mit der InvokeMethod-Aktivität aufgerufen werden. Der Grund dafür ist, dass die InvokeMethod-Aktivität GenericTypeArguments, TargetObject und Result in CacheMetadata registriert.
Der Algorithmus zum Registrieren der Parameter in CacheMetadata wird in der folgenden Liste dargestellt:
Registrieren Sie das TargetObject-Argument.
Registrieren Sie das Result-Argument.
Durchlaufen Sie die Parameters-Auflistung, und registrieren Sie jedes Argument.
Die resultierende Ausnahme hat den Typ InvalidWorkflowException mit der folgenden Meldung: 'InvokeMethod': Eine Variable, RuntimeArgument oder ein DelegateArgument ist bereits mit dem Namen 'TargetObject' vorhanden. Namen müssen innerhalb einer Umgebung eindeutig sein.
Diese Einschränkung gilt nicht für TargetType und RunAsynchronously. Sie sind keine Workflowargumente und daher nicht in der GenericTypeArguments-Sammlung der InvokeMethod-Aktivität in der CacheMetadata-Methode registriert.