2011-04-29 80 views
2

我們有一個應用程序,我們正在創建一個活動(say = CallA),這個活動將用在worklfow項目中。此活動(CallA)將調用另一個類(和另一個名稱空間)中存在的方法。我已經寫了方法的示例代碼下面被稱爲: -Workflow 4.0中的InvokeMethod

namespace WorkflowApplication1 
{ 
    class Class1 
    { 
     public int Trial(int a, int b) 
     { 
      return 23; 
     } 
    } 
} 

我們想使用工具箱提供的InvokeMethod功能,並且不希望使用codeactivity。

如果有人使用過WF 4.0的這個功能,請幫忙。

在此先感謝。

回答

2

在目標類型中,您必須指向實現該方法的類。

在方法名稱中,您必須寫出名稱。如果該方法不是靜態的,那麼您需要創建該類類型的變量,並提前對其進行初始化並在TargetObject屬性中使用它。你需要在你的WF一個變量來存儲結果(使用Invoke活動Result屬性)

希望它可以幫助

+0

我知道這是幾年後,但使用InvokeMethod而不是簡單的Assign的優點是什麼,我發現它更多可讀? – Thomas 2013-10-16 07:23:53

+0

你可以做更多的工作。而已。 – 2016-05-24 14:23:52

0

這裏遵循這個問題

1建議)創建一個Windows窗體應用
2)添加一個稱爲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)添加稱爲活性1
5)的活動編譯溶液
6)打開活性1並添加一個序列
7)點擊序列,創建2個變量,如下所示
enter image description here 8)插入一個的InvokeMethod和的WriteLine活動,如下所示

enter image description here
9)編輯調用方法的參數,如下面的
enter image description here 10)添加一個按鈕,單擊它兩次,以創建Click事件
11)添加下面的代碼你Form1類中,改變button1_Click事件

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是否顯示在輸出窗口中

相關問題