Share via


WorkflowPersistenceService.LoadWorkflowInstanceState(Guid) Metoda

Definice

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

instanceId
Guid

Kořenová Guid aktivita instance pracovního postupu.

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.

Platí pro