共用方式為


在具有 Interop 活動的 .NET Framework 4 中使用 .NET Framework 3.0 WF 活動

本主題僅適用於 Windows Workflow Foundation 4。

Interop 活動是 .NET Framework 4 (WF 4) 活動,它會將 .NET Framework 3.5 (WF 3.5) 活動包裝在 .NET Framework 4 工作流程中。 WF 3 活動可以是單一分葉活動,也可以是完整的活動樹狀結構。 .NET Framework 3.5 活動的執行 (包括取消及例外狀況處理) 與保存會發生於執行中的 .NET Framework 4 工作流程執行個體的內容中。

Ee264173.note(zh-tw,VS.100).gif Visual Basic 注意:
Interop 活動不會出現在工作流程設計工具的工具箱中,除非工作流程的專案已將其 [目標 Framework] 的設定值設為 [.NET Framework 4]。

搭配 Interop 活動使用 WF 3 活動的準則

若要讓 WF 3 活動順利在 Interop 活動中執行,必須符合下列準則:

設定 Interop 活動內的 WF3 活動

為了設定資料並跨互通性界限在 WF3 活動內外傳遞該資料,WF 3 活動的屬性和中繼資料屬性會由 Interop 活動公開。 WF 3 活動的中繼資料屬性 (例如 Name) 會透過 ActivityMetaProperties 集合公開。 這是名稱/值組的集合,用於定義 WF3 活動之中繼資料屬性的值。 中繼資料屬性是相依性屬性 (已設定其 Metadata 旗標) 所支援的屬性。

WF 3 活動的屬性會透過 ActivityProperties 集合公開。 這是一組名稱-值組,其中每個值均為一個 Argument 物件,用於定義 WF 3 活動之屬性的引數。 由於無法推斷 WF 3 活動屬性的方向,因此每個屬性均會以 InArgument/OutArgument 組的形式出現。 視活動使用屬性的方式而定,您可以提供 InArgument 項目、OutArgument 項目,或同時使用兩者。 集合中 InArgument 項目預期的名稱是在 WF 3 活動定義的屬性名稱。 集合中 OutArgument 項目預期的名稱是屬性名稱和字串 “Out” 的串連。

在 Interop 活動內使用 WF3 活動的限制

WF 3 系統提供的活動不可直接包裝在 Interop 活動中。 對部分 WF 3 活動 (例如 DelayActivity) 而言,這是因為已有類似的 WF 4 活動。 對其他活動而言,則是因為不支援該活動的功能。 許多 WF 3 系統提供的活動均可在由 Interop 活動包裝的工作流程中使用,但必須遵守下列限制:

  1. SendReceive 不可用於 Interop 活動。

  2. WebServiceInputActivityWebServiceOutputActivityWebServiceFaultActivity 不可用於 Interop 活動。

  3. InvokeWorkflowActivity 不可用於 Interop 活動。

  4. SuspendActivity 不可用於 Interop 活動。

  5. 與補償相關的活動不可用於 Interop 活動。

針對在 Interop 活動中使用 WF3 活動的詳細資訊,您也需要了解一些特定的行為資訊:

  1. 包含在 Interop 活動中的 WF 3 活動會在執行 Interop 活動時初始化。 在 WF 4 中,工作流程執行個體執行前沒有初始化階段。

  2. WF 4 執行階段不會在交易開始時針對工作流程執行個體狀態執行檢查點,無論該交易的開始點為何 (在 Interop 活動以內或以外)。

  3. Interop 活動內活動的 WF3 追蹤記錄會提供給 WF 4 追蹤參與者做為 InteropTrackingRecord 物件。InteropTrackingRecordCustomTrackingRecord 的衍生。

  4. WF 3 自訂活動可以使用互通環境內的工作流程佇列存取資料,方式就和在 WF3 工作流程執行階段中完全相同。 不需要變更任何自訂活動程式碼。 在主機上,資料會透過繼續 Bookmark 而加入 WF3 工作流程佇列。 書籤的名稱是 IComparable 工作流程佇列名稱的字串形式。

另請參閱

工作

在 .NET Framework 4 工作流程中使用 .NET Framework 3.0 或 .NET Framework 3.5 活動