如何从自定义代码活动中访问全局变量?

时间:2011-09-09 02:28:12

标签: workflow-foundation-4

刚开始使用WF4。

将一些文本从本机代码活动(位于顺序工作流的中间)传递到序列中的下一个(基于xaml的)活动时遇到问题。

以下是一个快速概要:自定义本机代码活动进行数据库调用,需要将结果传递给标准的“​​SendReplyToRecive”活动(这是此工作流程中的最后一个活动)。在顶级序列级别定义了一个全局变量“reportValue”,但我很难从该自定义本机代码活动中获取它。

此工作流程的设计图面不提供参数,只提供变量和导入,因此,我甚至不确定是否可以使用OutArgument。

这是怎么做到的?

1 个答案:

答案 0 :(得分:2)

如果您的自定义NativeActivity被定义为返回一个值,如下所示:

public sealed class MyCustomNativeActivity : NativeActivity<int>
{
    protected override void Execute(NativeActivityContext context)
    {
        context.SetValue<int>(base.Result, 10);
    }
}

您现在应该可以通过设计器使用 Result 属性将返回值设置为变量。

编辑:

检查此示例图像。在MyCustomNativeActivity中,您将拥有Result属性。要将返回的值赋给变量,只需初始化该变量并将其放在Result字段中。

从那时起,您可以在任何地方使用该变量。

请注意,在示例MyCustomNativeActivity中,返回的值是 Int32 ,但它可以是任何其他类型。

Image link here

Example Image