WorkflowPersistenceService.LoadCompletedContextActivity 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
파생 클래스에서 구현되는 경우 지정한 완료된 범위를 다시 메모리에 로드합니다.
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
메서드의 구현 방법을 보여 줍니다. 이 예제는 FilePersistenceService.cs 파일에 있는 Custom Persistence Service 샘플의 일부입니다. 자세한 내용은 Custom Persistence Service 샘플합니다.
// 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의 오버로드된 메서드 중 하나로 전달하여 범위의 deserialization을 수행해야 합니다.
지속성 서비스는 데이터 저장소에서 완료된 범위를 로드할 수 없는 경우 해당 메시지와 함께 PersistenceException을 throw해야 합니다.