Partager via


WorkflowPersistenceService.LoadCompletedContextActivity Méthode

Définition

En cas d'implémentation dans une classe dérivée, recharge l'objectif achevé spécifié en mémoire.

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

Paramètres

scopeId
Guid

Guid de l'objectif achevé.

outerActivity
Activity

Activity qui représente l'activité qui englobe l'objectif achevé.

Retours

Activity

Activity qui représente l'objectif achevé.

Exemples

L'exemple suivant illustre une implémentation de la méthode LoadCompletedContextActivity. Il provient de l'exemple de Custom Persistence Service, dans le fichier FilePersistenceService.cs. Pour plus d’informations, consultez l’exemple de service de persistance personnalisé.

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

Remarques

Le moteur d'exécution de workflow utilise LoadCompletedContextActivity pour implémenter la compensation. Vous devez restaurer une copie identique de l'objectif achevé. Pour ceci, vous devez restaurer une classe Stream valide de la représentation de l'objectif achevé dans la banque de données. Puis, vous devez passer la classe Stream à l’une des méthodes surchargées de la méthode Load pour exécuter la désérialisation de l’objectif.

Si votre service de persistance ne peut pas charger l'objectif achevé à partir de sa banque de données, il doit lever une classe PersistenceException avec un message approprié.

S’applique à