在具有 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 工作流程執行個體的內容中。
![]() |
---|
Interop 活動不會出現在工作流程設計工具的工具箱中,除非工作流程的專案已將其 [目標 Framework] 的設定值設為 [.NET Framework 4]。 |
搭配 Interop 活動使用 WF 3 活動的準則
若要讓 WF 3 活動順利在 Interop 活動中執行,必須符合下列準則:
WF 3 活動必須衍生自 System.Workflow.ComponentModel.Activity。
WF 3 活動必須宣告為
public
,而不可宣告為abstract
。WF 3 活動必須具有公用的預設建構函式。
由於 Interop 活動可支援的介面型別有限,所以無法直接使用HandleExternalEventActivity 與 CallExternalMethodActivity,但可使用以 [工作流程通訊活動] 工具 (WCA.exe) 所建立的衍生活動。 如需詳細資訊,請參閱 Windows Workflow Foundation 工具。
設定 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 活動包裝的工作流程中使用,但必須遵守下列限制:
WebServiceInputActivity、WebServiceOutputActivity 和 WebServiceFaultActivity 不可用於 Interop 活動。
InvokeWorkflowActivity 不可用於 Interop 活動。
SuspendActivity 不可用於 Interop 活動。
與補償相關的活動不可用於 Interop 活動。
針對在 Interop 活動中使用 WF3 活動的詳細資訊,您也需要了解一些特定的行為資訊:
包含在 Interop 活動中的 WF 3 活動會在執行 Interop 活動時初始化。 在 WF 4 中,工作流程執行個體執行前沒有初始化階段。
WF 4 執行階段不會在交易開始時針對工作流程執行個體狀態執行檢查點,無論該交易的開始點為何 (在 Interop 活動以內或以外)。
Interop 活動內活動的 WF3 追蹤記錄會提供給 WF 4 追蹤參與者做為 InteropTrackingRecord 物件。InteropTrackingRecord 是 CustomTrackingRecord 的衍生。
WF 3 自訂活動可以使用互通環境內的工作流程佇列存取資料,方式就和在 WF3 工作流程執行階段中完全相同。 不需要變更任何自訂活動程式碼。 在主機上,資料會透過繼續 Bookmark 而加入 WF3 工作流程佇列。 書籤的名稱是 IComparable 工作流程佇列名稱的字串形式。
另請參閱
工作
在 .NET Framework 4 工作流程中使用 .NET Framework 3.0 或 .NET Framework 3.5 活動