WorkflowPersistenceService.LoadCompletedContextActivity Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При реализации в производном классе загружает заданную завершенную область обратно в память.
protected public:
abstract System::Workflow::ComponentModel::Activity ^ LoadCompletedContextActivity(Guid scopeId, System::Workflow::ComponentModel::Activity ^ outerActivity);
protected internal abstract System.Workflow.ComponentModel.Activity LoadCompletedContextActivity (Guid scopeId, System.Workflow.ComponentModel.Activity outerActivity);
abstract member LoadCompletedContextActivity : Guid * System.Workflow.ComponentModel.Activity -> System.Workflow.ComponentModel.Activity
Protected Friend MustOverride Function LoadCompletedContextActivity (scopeId As Guid, outerActivity As Activity) As Activity
Параметры
Возвращаемое значение
Тип Activity, представляющий завершенную область.
Примеры
В следующем примере показана реализация метода LoadCompletedContextActivity
. Данный пример кода является частью примера «Custom Persistence Service» из файла FilePersistenceService.cs. Дополнительные сведения см. в примере пользовательской службы сохраняемости.
// Load the completed activity state.
protected override Activity LoadCompletedContextActivity(Guid activityId, Activity outerActivity)
{
Console.WriteLine("Loading completed activity context: {0}", activityId);
byte[] workflowBytes = DeserializeFromFile(activityId);
Activity deserializedActivities = WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, outerActivity);
return deserializedActivities;
}
' Load completed activity state.
Protected Overrides Function LoadCompletedContextActivity(ByVal scopeId As System.Guid, ByVal outerActivity As System.Workflow.ComponentModel.Activity) As System.Workflow.ComponentModel.Activity
Console.WriteLine("Loading completed activity context: 0}", scopeId)
Dim workflowBytes As Byte() = DeserializeFromFile(scopeId)
Dim deserializedActivities As Activity = WorkflowPersistenceService.RestoreFromDefaultSerializedForm(workflowBytes, outerActivity)
Return deserializedActivities
End Function
Комментарии
Подсистема среды выполнения рабочих процессов использует LoadCompletedContextActivity для реализации компенсации. Необходимо восстановить идентичную копию завершенной области. Для этого необходимо восстановить допустимый тип Stream из представления завершенной области в хранилище данных. Затем необходимо передать этот тип Stream одному из перегруженных методов Load для выполнения десериализации области.
Если служба постоянного хранения не может загрузить завершенную область из хранилища данных, необходимо вызывать исключение PersistenceException с помощью соответствующего сообщения.