WorkflowPersistenceService.LoadWorkflowInstanceState(Guid) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Při implementaci v odvozené třídě načte zadaný stav instance pracovního postupu zpět do paměti.
protected public:
abstract System::Workflow::ComponentModel::Activity ^ LoadWorkflowInstanceState(Guid instanceId);
protected internal abstract System.Workflow.ComponentModel.Activity LoadWorkflowInstanceState (Guid instanceId);
abstract member LoadWorkflowInstanceState : Guid -> System.Workflow.ComponentModel.Activity
Protected Friend MustOverride Function LoadWorkflowInstanceState (instanceId As Guid) As Activity
Parametry
Návraty
Představuje Activity kořenovou aktivitu instance pracovního postupu.
Příklady
Následující příklad ukazuje implementaci LoadWorkflowInstanceState
metody . Tento příklad je z ukázky vlastní služby trvalosti ze souboru FilePersistenceService.cs. Další informace najdete v ukázce vlastní služby trvalosti.
// Load workflow instance state.
protected override Activity LoadWorkflowInstanceState(Guid instanceId)
{
Console.WriteLine("Loading instance: {0}\n", instanceId);
byte[] workflowBytes = DeserializeFromFile(instanceId);
return WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, null);
}
' Load workflow instance state.
Protected Overrides Function LoadWorkflowInstanceState(ByVal instanceId As System.Guid) As System.Workflow.ComponentModel.Activity
Console.WriteLine("Loading instance: 0}" + vbLf, instanceId)
Dim obj As Object = DeserializeFromFile(instanceId)
Dim workflowBytes As Byte() = DeserializeFromFile(instanceId)
Return WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, Nothing)
End Function
Poznámky
Musíte obnovit identickou kopii aktivity. Chcete-li to provést, je nutné obnovit platný Stream z reprezentace instance pracovního postupu v úložišti dat; pak je nutné předat Stream jednu z přetížených Load metod deserializovat stav instance pracovního postupu. Pokud služba trvalosti nemůže načíst stav instance pracovního postupu ze svého úložiště dat, měla by vyvolat PersistenceException zprávu s příslušnou zprávou.
Modul runtime pracovního postupu implementuje sémantiku uzamčení pro omezení přístupu ke stavu instance pracovního postupu, který je uložen v úložišti dat. K tomuto přístupu se můžou dostat služby trvalosti, které běží ve více procesech. Sémantika uzamčení je navržena tak, aby zabránila službám trvalosti, které běží ve dvou různých procesech, v načtení stejné instance pracovního postupu do paměti ve stejnou dobu. V závislosti na typu prostředí, pro které je vaše služba trvalosti navržená pro podporu, se můžete rozhodnout, jestli chcete tuto funkci podporovat. Pokud se rozhodnete podporovat sémantiku uzamykání modulu runtime a pokud byl tento stav instance pracovního postupu dříve uzamčen jiným procesem, měli byste vyvolat WorkflowOwnershipException. Jinak byste měli uzamknout přístup ke stavu instance pracovního postupu v úložišti dat. Stav instance pracovního postupu lze odemknout voláním UnlockWorkflowInstanceState nebo voláním SaveWorkflowInstanceState s parametrem unlock nastaveným na true
.