WorkflowPersistenceService.SaveCompletedContextActivity(Activity) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
När det implementeras i en härledd klass sparar du det angivna slutförda omfånget i ett datalager.
protected public:
abstract void SaveCompletedContextActivity(System::Workflow::ComponentModel::Activity ^ activity);
protected internal abstract void SaveCompletedContextActivity(System.Workflow.ComponentModel.Activity activity);
abstract member SaveCompletedContextActivity : System.Workflow.ComponentModel.Activity -> unit
Protected Friend MustOverride Sub SaveCompletedContextActivity (activity As Activity)
Parametrar
Kommentarer
Arbetsflödets körningsmotor sparar tillståndet för slutförda omfångsaktiviteter för att implementera kompensation. Du måste anropa en av de överlagrade Save metoderna för att serialisera activity till en Stream. Sedan kan du välja att bearbeta den innan du Stream skriver den till datalagret. Men när arbetsflödets körningsmotor anropar LoadCompletedContextActivitymåste du återställa en identisk kopia av aktiviteten.
Du måste kunna associera det slutförda omfånget med dess omslutande arbetsflödesinstans för att markera omfånget som nödvändigt i datalagret när arbetsflödesinstansen är klar eller avslutas. Därför bör du också spara arbetsflödesinstansen Guid som är associerad med det slutförda omfånget. Detta kan hämtas från InstanceId egenskapen för den WorkflowInstance associerade med activity.
LoadCompletedContextActivity tar det Guid slutförda omfånget som en parameter. Därför måste du också spara egenskapen ContextGuid som är associerad med activity. Den här egenskapen kan refereras via fältet ActivityContextGuidPropertyactivity.
Om du implementerar en beständig tjänst som använder ett beständigt lager, för att upprätthålla konsekvens med det interna tillståndet för arbetsflödets körningsmotor, bör du delta i arbetsflödestransaktionsbatchen för att skjuta upp den faktiska skrivningen till ditt varaktiga lager till en arbetsflödesincheckningsplats. Om du vill delta i batchbearbetning lägger du till ett arbetsobjekt WorkBatch i egenskapen som representerar de väntande ändringarna i databasen och implementerar IPendingWork gränssnittet i din beständighetstjänst.
Om du inte kan spara det slutförda omfånget i datalagret bör du skicka ett PersistenceException med ett lämpligt felmeddelande.