次の方法で共有


WorkflowPersistenceService.LoadCompletedContextActivity メソッド

定義

派生クラスとして実装された場合、指定した完了スコープをメモリに戻します。

protected public:
 abstract System::Workflow::ComponentModel::Activity ^ LoadCompletedContextActivity(Guid scopeId, System::Workflow::ComponentModel::Activity ^ outerActivity);
protected internal abstract System.Workflow.ComponentModel.Activity LoadCompletedContextActivity (Guid scopeId, System.Workflow.ComponentModel.Activity outerActivity);
abstract member LoadCompletedContextActivity : Guid * System.Workflow.ComponentModel.Activity -> System.Workflow.ComponentModel.Activity
Protected Friend MustOverride Function LoadCompletedContextActivity (scopeId As Guid, outerActivity As Activity) As Activity

パラメーター

scopeId
Guid

完了したスコープの Guid

outerActivity
Activity

完了したスコープを囲むアクティビティを表す Activity

戻り値

Activity

完了したスコープを表す Activity

LoadCompletedContextActivity メソッドの実装例を次に示します。 この例は、FilePersistenceService.cs ファイルに含まれているカスタム永続性サービスのサンプルです。 詳細については、「 カスタム永続化サービスのサンプル」を参照してください。

// Load the completed activity state.
protected override Activity LoadCompletedContextActivity(Guid activityId, Activity outerActivity)
{
    Console.WriteLine("Loading completed activity context: {0}", activityId);
    byte[] workflowBytes = DeserializeFromFile(activityId);
    Activity deserializedActivities = WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, outerActivity);
    return deserializedActivities;
}
' Load completed activity state.
Protected Overrides Function LoadCompletedContextActivity(ByVal scopeId As System.Guid, ByVal outerActivity As System.Workflow.ComponentModel.Activity) As System.Workflow.ComponentModel.Activity
    Console.WriteLine("Loading completed activity context: 0}", scopeId)
    Dim workflowBytes As Byte() = DeserializeFromFile(scopeId)
    Dim deserializedActivities As Activity = WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, outerActivity)
    Return deserializedActivities
End Function

注釈

ワークフロー ランタイム エンジンは、補正を実装するために LoadCompletedContextActivity を使用します。 完了したスコープの完全なコピーを復元する必要があります。 そのためには、データ ストア内の完了スコープを表すものから有効な Stream を復元する必要があります。 次に、オーバーロードされた Stream メソッドの 1 つに、この Load を渡してスコープの逆シリアル化を実行します。

永続性サービスは、データ ストアから完了スコープを読み込めなかった場合に、適切なメッセージを含めた PersistenceException をスローする必要があります。

適用対象