Freigeben über


WorkflowPersistenceService.LoadCompletedContextActivity Methode

Definition

Bei Implementierung in einer abgeleiteten Klasse, wird der angegebene abgeschlossene Bereich zurück in den Arbeitsspeicher geladen.

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

Parameter

scopeId
Guid

Guid des abgeschlossenen Bereichs.

outerActivity
Activity

Activity, die die Aktivität darstellt, die den abgeschlossenen Bereich einschließt.

Gibt zurück

Activity

Activity, die den abgeschlossenen Bereich darstellt.

Beispiele

Im folgenden Beispiel wird eine Implementierung der LoadCompletedContextActivity-Methode gezeigt. Dieses Beispiel stammt aus dem Beispiel zum benutzerdefinierten Persistenzdienst in der Datei FilePersistenceService.cs. Weitere Informationen finden Sie im Beispiel für den benutzerdefinierten Persistenzdienst.

// 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

Hinweise

Die Workflowruntime-Engine verwendet LoadCompletedContextActivity zum Implementieren der Kompensierung. Sie müssen eine identische Kopie des abgeschlossenen Bereichs wiederherstellen. Dazu müssen Sie einen gültigen Stream aus Ihrer Darstellung des abgeschlossenen Bereichs im Datenspeicher wiederherstellen. Anschließend müssen Sie diesen Stream an eine der überladenen Methoden von Load übergeben, um eine Deserialisierung des Bereichs auszuführen.

Wenn der Persistenzdienst den abgeschlossenen Bereich nicht aus seinem Datenspeicher laden kann, sollte er PersistenceException in Verbindung mit einer entsprechenden Meldung auslösen.

Gilt für