Udostępnij za pośrednictwem


WorkflowPersistenceService.LoadCompletedContextActivity Metoda

Definicja

Po zaimplementowaniu w klasie pochodnej ładuje określony ukończony zakres z powrotem do pamięci.

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

Parametry

scopeId
Guid

Zakres Guid ukończony.

outerActivity
Activity

Element Activity reprezentujący działanie, które otacza ukończony zakres.

Zwraca

Activity

Element Activity reprezentujący ukończony zakres.

Przykłady

W poniższym przykładzie pokazano implementację LoadCompletedContextActivity metody . Ten przykład pochodzi z przykładowej usługi Custom Persistence Service z pliku FilePersistenceService.cs. Aby uzyskać więcej informacji, zobacz Custom Persistence Service Sample (Przykład usługi Custom Persistence Service).

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

Uwagi

Aparat środowiska uruchomieniowego przepływu pracy używa LoadCompletedContextActivity do implementowania kompensacji. Musisz przywrócić identyczną kopię ukończonego zakresu. W tym celu należy przywrócić prawidłowy Stream element z reprezentacji ukończonego zakresu w magazynie danych. Następnie należy przekazać to Stream do jednej z przeciążonych metod w Load celu wykonania deserializacji zakresu.

Jeśli usługa trwałości nie może załadować ukończonego zakresu z magazynu danych, powinien zgłosić PersistenceException komunikat z odpowiednim komunikatem.

Dotyczy