WorkflowPersistenceService.LoadCompletedContextActivity Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- outerActivity
- Activity
Activity, die die Aktivität darstellt, die den abgeschlossenen Bereich einschließt.
Gibt zurück
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.