0

我在 Windows Workflow Foundation 中有一个 InvokeMethod 活动。这个工作流程非常简单:

  1. 询问用户他/她的身高
  2. 如果身高大于 5.9,则询问他/她的个人资料详细信息
  3. 显示个人资料详细信息

为此,我创建了一个工作流程,如下所示: 在此处输入图像描述

如何分配从 InvokeMethod 返回的对象作为变量?

我已经在 GitHub 上发布了我的代码

4

1 回答 1

1

这是 Visual Studio 属性中的解决方案:

首先在您的工作流程中添加一个变量:

Printscreen 工作流程的变量

将 InvokeMethod Activity 拖放到您的工作流工作区并编辑属性:

PrintScreen(InvokeMethod 的属性)

  1. 方法名称:输入您的方法名称
  2. 参数:设置参数(方向:In,类型:typeNeeded,Value yourValue
  3. 结果:输入之前定义的工作流中的变量名称
  4. TargetType:设置方法返回类型的类型

这是 XAMLX 中的解决方案

xmlns:mca="clr-namespace:Microsoft.CSharp.Activities;assembly=System.Activities"
xmlns:p1="http://schemas.microsoft.com/netfx/2009/xaml/activities"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"

<p1:InvokeMethod sap2010:WorkflowViewState.IdRef="InvokeMethod_1" MethodName="YourMethodName" TargetType="x:Object">
    <p1:InvokeMethod.Result>
        <p1:OutArgument x:TypeArguments="x:Object">
            <mca:CSharpReference x:TypeArguments="x:Object">workflowVariableName</mca:CSharpReference>
        </p1:OutArgument>
    </p1:InvokeMethod.Result>
    <p1:InArgument x:TypeArguments="x:Int32">
        <mca:CSharpValue x:TypeArguments="x:Int32">variableNamePassedToMyMethod;</mca:CSharpValue>
    </p1:InArgument>
</p1:InvokeMethod>
于 2017-03-23T17:56:36.420 回答