Condividi tramite


WorkflowPersistenceService.LoadCompletedContextActivity Metodo

Definizione

Se implementato in una classe derivata, carica di nuovo l'ambito completato specificato in memoria.

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

Parametri

scopeId
Guid

Guid dell'ambito completato.

outerActivity
Activity

Un oggetto Activity che rappresenta l'attività che racchiude l'ambito completato.

Restituisce

Activity

Classe Activity che rappresenta l'ambito compilato.

Esempio

Nell'esempio seguente viene illustrata un'implementazione del metodo LoadCompletedContextActivity. Questo esempio è tratto dall'esempio SDK Custom Persistence Service nel file FilePersistenceService.cs. Per altre informazioni, vedere Esempio di servizio di persistenza personalizzata.

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

Commenti

Il motore di runtime del flusso di lavoro utilizza LoadCompletedContextActivity per implementare la compensazione. È necessario ripristinare una copia identica dell'ambito completato. Per questo scopo, è necessario ripristinare un Stream valido dalla rappresentazione dell'ambito completato nell'archivio dati. Quindi è necessario passare Stream a uno dei metodi di overload di Load per eseguire la deserializzazione dell'ambito.

Se il servizio di persistenza non può caricare l'ambito completato dall'archivio dati, deve generare un'eccezione PersistenceException con un messaggio adatto.

Si applica a