Workflow 工作流4.0中的InvokeMethod

Workflow 工作流4.0中的InvokeMethod,workflow,workflow-foundation,workflow-foundation-4,Workflow,Workflow Foundation,Workflow Foundation 4,我们有一个应用程序,其中我们正在创建一个活动(比如=CallA),这个活动将在Workfow项目中使用。此活动(CallA)将调用另一个类(和另一个命名空间)中存在的方法。我已经为下面调用的方法编写了一个示例代码:- namespace WorkflowApplication1 { class Class1 { public int Trial(int a, int b) { return 23; }

我们有一个应用程序,其中我们正在创建一个活动(比如=CallA),这个活动将在Workfow项目中使用。此活动(CallA)将调用另一个类(和另一个命名空间)中存在的方法。我已经为下面调用的方法编写了一个示例代码:-

    namespace WorkflowApplication1
{
    class Class1
    {
        public int Trial(int a, int b)
        {
            return 23;
        }
    }
}
我们希望使用工具箱中提供的InvokeMethod特性,而不希望使用codeactivity

如果有人使用过WF 4.0的此功能,请提供帮助


提前感谢。

在目标类型中,您必须指向实现该方法的类

在方法名中,您必须写入名称。如果该方法不是静态的,那么您需要创建该类类型的变量,预先初始化它并在TargetObject属性中使用它。在WF中需要一个变量来存储结果(使用Invoke活动的result属性)


希望对您有所帮助

下面是对这个问题的建议

1) 创建Windows窗体应用程序
2) 添加一个名为Class 1的类,并将名称空间更改为WorkflowApplication1
3) 将整个代码从类1更改为

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WorkflowApplication1
{
    public class Class1
    {
        public int Trial(int a, int b)
        {
            return 23;
        }
     }
}
4) 添加名为Activity1的活动
5) 编译解决方案
6) 打开Activity1并添加序列
7) 单击序列并创建2个变量,如下所示
8) 插入InvokeMethod和Writeline活动,如下所示


9) 编辑Invoke方法的参数,如下所示
10) 添加按钮并单击两次以创建单击事件
11) 在Form1类中添加以下代码并更改按钮1\u单击事件

namespace Generic
{

public partial class Form1 : Form
{

    WorkflowApplication WFApp = null;
    AutoResetEvent WFAppEvent = null;

    public void RunWFApp()
    {
        WFAppEvent = new AutoResetEvent(false);
        WFApp = new WorkflowApplication(new Activity1());

        WFApp.Completed = delegate (WorkflowApplicationCompletedEventArgs e)
        {
            WFAppEvent.Set();
        };
        WFApp.Run();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        RunWFApp();
    }

    ...
    ...
    }
}

12) 打开输出窗口(Ctrl-Alt-O)。运行应用程序,单击按钮并检查数字23是否显示在输出窗口中

我知道这是几年后的事了,但是使用InvokeMethod而不是简单的赋值(我发现它更可读)有什么好处?您可以做的不仅仅是赋值。就这样。