Utilizzo dell'attività CompensatableSequenceActivity

L'attività CompensatableSequenceActivity è una versione di compensazione dell'attività SequenceActivity che implementa l'interfaccia ICompensatableActivity. L'attività CompensatableSequenceActivity implementa l'interfaccia ICompensatableActivity. Tramite l'implementazione di questa interfaccia, l'attività CompensatableSequenceActivity può presentare un'attività CompensationHandlerActivity come elemento figlio. Questa attività verrà eseguita qualora l'attività CompensatableSequenceActivity venga compensata.

La compensazione si verifica solo per le attività completate correttamente che implementano l'interfaccia ICompensatableActivity. La compensazione può essere implicita come conseguenza di un'eccezione che si verifica in un'attività padre, oppure esplicita tramite l'utilizzo dell'attività CompensateActivity.

L'utilizzo dell'attività CompensatableSequenceActivity è appropriato quando occorre eseguire operazioni non transazionali che, a causa di una determinata condizione di errore, devono essere annullate in seguito. Si supponga ad esempio che un flusso di lavoro abbia inviato un messaggio di posta elettronica e che, a causa di un errore successivo, occorra inviare un messaggio di posta elettronica di ritrazione. A tale scopo è possibile posizionare l'attività che invia il primo messaggio di posta elettronica nell'attività CompensatableSequenceActivity e l'attività che invia il messaggio di posta elettronica di ritrazione nell'attività CompensationHandlerActivity corrispondente. In questo modo, il runtime eseguirà la logica di compensazione solo se la prima attività CompensatableSequenceActivity viene completata correttamente, ovvero se viene inviato il primo messaggio di posta elettronica.

Per informazioni sul comportamento di un'attività SequenceActivity, vedere Utilizzo dell'attività SequenceActivity.

Per informazioni sulla compensazione, vedere Utilizzo dell'attività CompensateActivity e Utilizzo dell'attività CompensationHandlerActivity.

Per un esempio di codice che illustri la modalità di utilizzo della compensazione, vedere Compensation Sample.

Vedere anche

Riferimenti

SequenceActivity
CompensateActivity
CompensationHandlerActivity
ICompensatableActivity
CompensatableSequenceActivity
CompensatableTransactionScopeActivity

Concetti

Utilizzo dell'attività SequenceActivity
Utilizzo della compensazione nei flussi di lavoro
Utilizzo dell'attività CompensateActivity
Utilizzo dell'attività CompensationHandlerActivity
Utilizzo dell'attività CompensatableTransactionScopeActivity
Panoramica sulla compensazione

Altre risorse

Compensation Sample
Attività di Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.