WorkflowPersistenceService 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
所有持續性服務都是衍生自此抽象基底類別。
public ref class WorkflowPersistenceService abstract : System::Workflow::Runtime::Hosting::WorkflowRuntimeService
public abstract class WorkflowPersistenceService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public abstract class WorkflowPersistenceService : System.Workflow.Runtime.Hosting.WorkflowRuntimeService
type WorkflowPersistenceService = class
inherit WorkflowRuntimeService
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type WorkflowPersistenceService = class
inherit WorkflowRuntimeService
Public MustInherit Class WorkflowPersistenceService
Inherits WorkflowRuntimeService
- 繼承
- 衍生
- 屬性
備註
注意
此資料討論已被汰換的類型及命名空間。 如需詳細資訊,請參閱 Windows Workflow Foundation 4.5 中即將淘汰的類型。
在工作流程執行中發生特定情況時,工作流程執行階段引擎會保存有關工作流程執行個體的狀態資訊。 例如,不可部分完成的異動完成時、工作流程執行個體閒置時、主機呼叫工作流程執行個體上的 WorkflowInstance.Unload 時、或工作流程執行個體終止或完成時,都可能發生保存。 工作流程執行階段引擎語意指示保存應發生時,工作流程執行階段引擎會呼叫持續性服務所提供的方法,以儲存有關工作流程執行個體的狀態資訊。 同樣地,當工作流程執行階段引擎需要還原之前保存的工作流程執行個體時,它會呼叫持續性服務所提供的方法以載入此狀態資訊。 工作流程執行階段引擎處理有關何時執行保存的語意。 持續性服務實際上是在資料存放區來回儲存和載入工作流程狀態資訊。
您可以藉由衍生自 WorkflowPersistenceService 類別的類別來建立持續性服務。 您可以藉由呼叫 AddService,或在應用程式組態檔中建立適當的項目,來將您的持續性服務加入至工作流程執行階段引擎。 WorkflowRuntime 應該只包含一個持續性服務。 Windows Workflow Foundation 提供 SqlWorkflowPersistenceService 類別,這是一種您可以依原狀使用或加以擴充的預設持續性服務。
工作流程執行階段引擎具有鎖定工作流程狀態資訊的語意,當執行於不同處理序中的持續性服務可能具有同一個資料存放區的存取權時便可使用這類語意。 WorkflowPersistenceService 類別透過提供參數至 SaveWorkflowInstanceState 指定是否解除鎖定資料存放區中的工作流程執行個體狀態資訊,並提供解除鎖定先前鎖定之工作流程狀態資訊的 UnlockWorkflowInstanceState 方法,來支援這項工作流程執行階段引擎功能。 在實作鎖定的持續性服務中,呼叫 LoadWorkflowInstanceState 應會鎖定工作流程執行個體的狀態資訊。
如果您的持續性服務無法儲存狀態資訊到其資料存放區,或無法從其資料存放區載入狀態資訊,應會擲回 PersistenceException。 工作流程執行階段引擎需要這個行為。
系統提供批次處理機制給使用長期存放區儲存工作流程狀態資訊的服務。 在這些情況中,保持持續性服務使用的長期存放區與工作流程執行階段引擎內部狀態之間的一致性相當重要。 您可以將 IPendingWork 介面定義的功能加入至您的服務,然後透過加入變更到您的資料存放區,並將工作項目加入至 WorkflowCommitWorkBatchService,來參與 WorkBatch 所提供的工作流程交易批次處理。 長期存放區本身應實作 IEnlistmentNotification 介面,如此在異動復原時就不會錯誤地保存工作流程資訊。 如需詳細資訊,請參閱 SaveCompletedContextActivity或 SaveWorkflowInstanceState。
建構函式
WorkflowPersistenceService() |
已淘汰.
在衍生類別中實作時,初始化 WorkflowPersistenceService 類別的新執行個體。 |
屬性
Runtime |
已淘汰.
取得此服務的 WorkflowRuntime。 (繼承來源 WorkflowRuntimeService) |
State |
已淘汰.
取得 WorkflowRuntimeService 的狀態。 (繼承來源 WorkflowRuntimeService) |