PersistenceParticipant 類別

定義

這個類別允許 WorkflowApplicationWorkflowServiceHost 參與持續性處理程序。 持續性參與者衍生自 PersistenceParticipant 類別或 PersistenceIOParticipant 類別 (PersistenceParticipant 類別的衍生類別)、實作抽象方法,然後加入類別的執行個體做為工作流程執行個體擴充。 WorkflowApplicationWorkflowServiceHost 保存執行個體時,會尋找此類擴充,並且在適當的時間叫用適當的方法。

public ref class PersistenceParticipant abstract
public abstract class PersistenceParticipant
type PersistenceParticipant = class
Public MustInherit Class PersistenceParticipant
繼承
PersistenceParticipant
衍生

範例

下列程式碼範例將示範如何建立衍生自 PersistenceParticipant 的類別。 此範例來自 雇用程式 範例。

public class HiringRequestInfoPersistenceParticipant: PersistenceIOParticipant
{
    public HiringRequestInfoPersistenceParticipant()
        : base(true, false)
    {
    }

備註

主機保存執行個體時,會執行下列步驟 (或階段):

  1. 收集要保存的值。

  2. 對應整體結構值的欄位與個別值。

  3. 核發 SaveWorkflowCommand 給持續性提供者。

  4. 在持續性異動下執行 I/O。

主機會先結束一個階段再開始進行下一個階段。 例如,在進行保存時,主機會先從所有持續性參與者收集值,再進入第二個階段。 在第二個階段中,主機會將在第一個階段中收集到的所有值提供給第二個階段中的所有持續性參與者,以進行對應。 在第三個階段中,主機叫用 SaveWorkflowCommand 時,會將在第一及第二個階段中收集到的所有值提供給持續性提供者。 接著,在第四個階段中,主機會將收集到的所有值提供給持續性異動下的所有持續性 IO 參與者。

主機載入持續性執行個體時,會執行下列階段:

  1. 核發 LoadWorkflowCommandLoadWorkflowByInstanceKeyCommand 給持續性提供者。

  2. 在持續性異動下執行 I/O。

  3. 發行已載入的值。

在最高層級時,衍生自 PersistenceParticipant 類別的工作流程執行個體擴充可以參與持續性處理序的第一個 (收集) 和第二個 (對應) 階段,以及載入處理序的第三個 (發行) 階段。 衍生自 PersistenceIOParticipant 類別的工作流程執行個體擴充還可以參與持續性處理序的第四個階段和載入處理序的第二個階段 (I/O)。

建構函式

PersistenceParticipant()

初始化 PersistenceParticipant 類別的執行個體。

方法

CollectValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

主機會在自訂的持續性參與者上叫用這個方法,以收集要保存的讀寫值和唯寫值。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MapValues(IDictionary<XName,Object>, IDictionary<XName,Object>)

主機在第一個階段中完成收集值時,會叫用這個方法。 主機會將在第一個階段 (CollectValues 階段) 中自所有持續性參與者收集到的值所組成的兩個唯讀字典轉送到這個方法,以進行對應。 主機會將這個方法所傳回之字典中的值加入到唯寫值的集合中。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
PublishValues(IDictionary<XName,Object>)

主機會叫用這個方法,並將 InstanceData 集合 (由 LoadWorkflowCommandLoadWorkflowByInstanceKeyCommand 填入) 中載入的所有值當做字典參數傳遞。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於