WorkflowPersistenceService.LoadCompletedContextActivity Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
Zwraca
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.