WorkflowPersistenceService.LoadWorkflowInstanceState(Guid) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Po zaimplementowaniu w klasie pochodnej ładuje określony stan wystąpienia przepływu pracy z powrotem do pamięci.
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
Zwraca
Element Activity reprezentujący działanie główne wystąpienia przepływu pracy.
Przykłady
W poniższym przykładzie pokazano implementację LoadWorkflowInstanceState
metody . Ten przykład pochodzi z przykładowej usługi Custom Persistence Service z pliku FilePersistenceService.cs. Aby uzyskać więcej informacji, zobacz Przykład usługi Custom Persistence Service.
// 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
Uwagi
Musisz przywrócić identyczną kopię działania. W tym celu należy przywrócić prawidłową Stream reprezentację wystąpienia przepływu pracy w magazynie danych. Następnie należy przekazać je Stream do jednej z przeciążonych Load metod w celu deserializacji stanu wystąpienia przepływu pracy. Jeśli usługa trwałości nie może załadować stanu wystąpienia przepływu pracy z magazynu danych, powinna zgłosić PersistenceException odpowiedni komunikat.
Aparat środowiska uruchomieniowego przepływu pracy implementuje blokowanie semantyki w celu ograniczenia dostępu do stanu wystąpienia przepływu pracy zapisanego w magazynie danych. Dostęp do tego można uzyskać za pomocą usług trwałości uruchamianych w wielu procesach. Semantyka blokowania została zaprojektowana tak, aby zapobiec jednoczesnemu ładowaniu tego samego wystąpienia przepływu pracy do pamięci w dwóch różnych procesach. W zależności od typu środowiska, które usługa trwałości została zaprojektowana do obsługi, możesz wybrać, czy chcesz obsługiwać tę funkcję. Jeśli zdecydujesz się obsługiwać semantyka blokowania środowiska uruchomieniowego, a jeśli ten stan wystąpienia przepływu pracy został wcześniej zablokowany przez inny proces, należy zgłosić wyjątek WorkflowOwnershipException. W przeciwnym razie należy zablokować dostęp do stanu wystąpienia przepływu pracy w magazynie danych. Stan wystąpienia przepływu pracy można odblokować za pomocą wywołania metody UnlockWorkflowInstanceState lub wywołania polecenia SaveWorkflowInstanceState z parametrem odblokowania ustawionym na true
wartość .