刚开始使用WF4。
将一些文本从本机代码活动(位于顺序工作流的中间)传递到序列中的下一个(基于xaml的)活动时遇到问题。
以下是一个快速概要:自定义本机代码活动进行数据库调用,需要将结果传递给标准的“SendReplyToRecive”活动(这是此工作流程中的最后一个活动)。在顶级序列级别定义了一个全局变量“reportValue”,但我很难从该自定义本机代码活动中获取它。
此工作流程的设计图面不提供参数,只提供变量和导入,因此,我甚至不确定是否可以使用OutArgument。
这是怎么做到的?
答案 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 ,但它可以是任何其他类型。