InvokeMethod 活动设计器
**“InvokeMethod”**设计器用于创建和配置 InvokeMethod 活动。
InvokeMethod 活动
InvokeMethod 调用指定对象或类型的公共方法。
使用 InvokeMethod 活动设计器
**“InvokeMethod”活动设计器可在“工具箱”的“基元”类别中找到,“工具箱”可通过单击 工作流设计器 的“工具箱”选项卡(或者,从“视图”菜单中选择“工具栏”**或按 Ctrl+Alt+X)来访问。
可以将**“InvokeMethod”活动设计器从“工具箱”拖放到 工作流设计器 图面上通常放置活动的任何位置,如 Sequence 内。这将创建具有 InvokeMethod 的默认 DisplayName 的 InvokeMethod 活动。可以在“InvokeMethod”活动设计器的标头中或在属性网格的“DisplayName”**框中编辑 DisplayName。
InvokeMethod 属性
下表列出 InvokeMethod 属性并说明如何在设计器中使用它们。这些属性可以在属性网格中进行编辑,其中一些属性还可以在 工作流设计器 设计器图面上进行编辑。
属性名 | 必需 | 用法 |
---|---|---|
DisplayName |
False |
InvokeMethod 活动的友好名称。默认值为 InvokeMethod。 虽然 DisplayName 不是绝对必需的,但最好使用该属性。 |
True |
要在执行活动时调用的方法的名称。调用的方法必须声明为 public。此属性可以在设计器图面上进行编辑。此属性是强制属性。 |
|
False |
所调用方法的参数集合。将参数添加到集合中的顺序必须与这些参数在方法签名中出现的顺序相同。在属性网格中,单击“参数”字段中的省略号按钮,此时将显示“参数”对话框以便您设置此属性。单击“创建参数”按钮以添加参数。 |
|
False |
方法调用的返回值。 |
|
True |
指定是否异步调用该方法。默认值为 False。 |
|
False |
包含要调用的方法的对象。此属性可以在设计器图面上进行编辑。 必须设置 TargetObject 或 TargetType 之一。 |
|
TargetType |
False |
TargetObject 的类型。此属性可以在设计器图面上进行编辑。只有当调用的方法为静态时,才必须设置此属性。 |
若要将参数作为 C# out 参数传递(例如,Method1(out myParam)
),应使用 OutArgument 而不是 InOutArgument。
具有名为 TargetObject 或 Result 的参数的方法不能使用 InvokeMethod 活动来调用。原因是 InvokeMethod 活动在 CacheMetadata 中注册 GenericTypeArguments、TargetObject 和 Result。
在 CacheMetadata 中注册这些参数的算法如下所列:
注册 TargetObject 参数。
注册 Result 参数。
循环访问 Parameters 集合并注册每个参数。
产生的异常的类型为 InvalidWorkflowException 并带有以下消息:“InvokeMethod”: 已存在名为“TargetObject”的变量、RuntimeArgument 或 DelegateArgument。在环境作用域中,名称必须唯一。
此限制不适用于 TargetType 和 RunAsynchronously,因为它们不是工作流参数,因此在 CacheMetadata 方法中而不在 InvokeMethod 活动的 GenericTypeArguments 集合中注册。
另请参见
概念
Assign 活动设计器
Delay 活动设计器
WriteLine 活动设计器