WorkflowPersistenceService.LoadCompletedContextActivity Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- outerActivity
- Activity
Un oggetto Activity che rappresenta l'attività che racchiude l'ambito completato.
Restituisce
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.