WorkflowPersistenceService.LoadCompletedContextActivity Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
Retours
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é.