1

我正在評估新版本的Workflow Foundation(4.0),但我對自定義活動有點困惑。我正在使用Beta 1位。Workflow 4.0中的自定義活動:WorkflowElement或Activity/CodeActivity?

我相信,如果我想創建一個自定義活動我應該擴展一個WorkflowElement,如果我想我的自定義活動舉辦其他活動,我應該擴展活動。但是,WorkflowElement似乎有很多抽象的內部方法,我不能重寫。

我的同事認爲,定製非容器(即,未持有其他活動)活動應擴展CodeActivity。但在WF的最新版本中,CodeActivities不是基類,它們是在父級工作流程中執行方法的活動。

這個最新的詞是什麼?我應該在Workflow 4.0中爲我的自定義活動使用基類嗎?

+0

問題在測試期間被問到。移動,沒有什麼可以在這裏看到。 – Will 2010-10-03 17:38:18

回答

2

當時還是挖掘和發現這一點:

  • 活動:創建一個組合活動時使用 - 活動誰的執行完全表現爲其他活動組成。您可以用聲明方式(使用XAML)設計從Activity類型創建的活動,並且不允許使用任何命令式代碼。從概念的角度來看,創作「工作流程」(在這種情況下,定義爲將一系列活動連接在一起)時,基本上是創作派生的「活動」類。
  • CodeActivity:創建實現自定義的Execute方法,而且是專爲工作的短期運行的塊活動時使用。
  • NativeActivity的:創建具有完全訪問的WF運行時的功能,調度的子活動和操縱書籤核心活動時使用。這是作爲最後手段的類型,我們不希望許多人繼承這種類型。
  • 一個WorkflowElement:這是一個抽象基類,所有的活動從派生。

來源:http://blogs.msdn.com/endpoint/archive/2009/05/01/the-road-to-4-wf-changes-between-beta-1-and-ctp.aspx


NativeActivity的。 CodeActivity不適用於wimps。此外,還有這些的異步版本。

+0

無法真正編輯,但認爲我會添加AsyncCodeActivity類。 http://msdn.microsoft.com/en-us/library/system.activities.asynccodeactivity.aspx本質上,它是代碼活動的異步版本,每個IE CodeActivity ,NativeActivity etc的泛型版本... when需要從活動中返回價值。 – Terrance 2010-10-03 05:42:32

+0

@Ter老兄,這回到beta1天。 – Will 2010-10-03 17:36:05

+0

也許如此,但完整的信息是完整的,這似乎是一個常見的問題,爲什麼不能有一個完整的共同答案。我認爲這個問題應該是本地的,如果在標題中你把「測試版」,但因爲它只是4.0我會認爲它更相關 – Terrance 2010-10-04 12:26:51

0

從CodeActivity擴展爲您提供了在WF實例中需要的基本功能。這是最簡單的方法。

如果你想改變你WF執行調度(根據調度的一些條件另一個活動,或安排通過創建書籤「等待」),您將需要從NativeActivity的擴展。

相關問題