Share via


PersistenceParticipant クラス

定義

このクラスでは、WorkflowApplicationWorkflowServiceHost の両方が永続化プロセスに参加できます。 永続参加要素は、PersistenceParticipant クラスまたは PersistenceIOParticipant クラス (PersistenceParticipant クラスの派生クラス) から派生し、抽象メソッドを実装して、クラスのインスタンスをワークフロー インスタンス拡張機能として追加します。 WorkflowApplication および WorkflowServiceHost は、インスタンスの永続化時にこのような拡張機能を探し、適切なときに適切なメソッドを起動します。

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 を実行します。

ホストは、段階を完了してから次の段階を開始します。 たとえば永続化時は、ホストは、2 番目の段階に進む前に、すべての永続参加要素から値を収集します。 2 番目の段階では、ホストは、マップを行うために、最初の段階で収集したすべての値を 2 番目の段階のすべての永続参加要素に提供します。 3 番目の段階では、ホストは、SaveWorkflowCommand の起動時に、最初の段階および 2 番目の段階で収集したすべての値を永続化プロバイダーに提供します。 次に、4 番目の段階では、ホストは、収集したすべての値を永続性トランザクションの下で永続 IO 参加要素に提供します。

ホストは、永続化インスタンスの読み込み時に次の段階を実行します。

  1. LoadWorkflowCommand および LoadWorkflowByInstanceKeyCommand を永続化プロバイダーに発行します。

  2. 永続性トランザクションの下で I/O を実行します。

  3. 読み込まれた値を発行します。

最上位レベルでは、PersistenceParticipant クラスから派生するワークフロー インスタンス拡張機能は、永続化プロセスの最初の段階 (Collect) および 2 番目の段階 (Map) と、読み込みプロセスの 3 番目の段階 (Publish) に参加できます。 PersistenceIOParticipant クラスから派生するワークフロー インスタンス拡張機能は、さらに、永続化プロセスの 4 番目の段階と、読み込みプロセス (I/O) の 2 番目の段階に参加できます。

コンストラクター

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 段階) ですべての永続参加要素から収集した値の 2 つの読み取り専用ディクショナリを、マップのためにこのメソッドに転送します。 ホストは、このメソッドから返されたディクショナリの値を、書き込み専用値のコレクションに追加します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
PublishValues(IDictionary<XName,Object>)

ホストは、このメソッドを起動し、InstanceData コレクション (LoadWorkflowCommand または LoadWorkflowByInstanceKeyCommand で埋められた) 内の読み込まれたすべての値をディクショナリ パラメーターとして渡します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象