다음을 통해 공유


TrackingProfile 클래스

정의

주의

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

추적 서비스가 알림을 받아야 하는 루트 워크플로 인스턴스의 잠재적 실행 경로에 관심 지점을 정의합니다.

public ref class TrackingProfile
[System.Serializable]
public class TrackingProfile
[System.Serializable]
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class TrackingProfile
[<System.Serializable>]
type TrackingProfile = class
[<System.Serializable>]
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type TrackingProfile = class
Public Class TrackingProfile
상속
TrackingProfile
특성

예제

다음 코드 예제에서는 TrackingProfile 생성자를 사용하여 TrackingProfile을 만드는 방법 및 해당 개체의 속성을 사용하여 워크플로 실행을 추적하는 방법을 보여 줍니다. 예제 코드에서는 ActivityTrackPoints, VersionWorkflowTrackPoints 속성을 사용합니다.

이 코드 예제는 Program.cs 파일에 있는 Query using SQLTrackingService SDK 샘플의 일부입니다. 자세한 내용은 쿼리를 사용 하 여 SQLTrackingService합니다.

private static void CreateAndInsertTrackingProfile()
{
    TrackingProfile profile = new TrackingProfile();
    ActivityTrackPoint activityTrack = new ActivityTrackPoint();
    ActivityTrackingLocation activityLocation = new ActivityTrackingLocation(typeof(Activity));
    activityLocation.MatchDerivedTypes = true;
    IEnumerable<ActivityExecutionStatus> statuses = Enum.GetValues(typeof(ActivityExecutionStatus)) as IEnumerable<ActivityExecutionStatus>;
    foreach (ActivityExecutionStatus status in statuses)
    {
        activityLocation.ExecutionStatusEvents.Add(status);
    }

    activityTrack.MatchingLocations.Add(activityLocation);
    profile.ActivityTrackPoints.Add(activityTrack);
    profile.Version = version;

    WorkflowTrackPoint workflowTrack = new WorkflowTrackPoint();
    WorkflowTrackingLocation workflowLocation = new WorkflowTrackingLocation();
    IEnumerable<TrackingWorkflowEvent> eventStatuses = Enum.GetValues(typeof(TrackingWorkflowEvent)) as IEnumerable<TrackingWorkflowEvent>;
    foreach (TrackingWorkflowEvent status in eventStatuses)
    {
        workflowLocation.Events.Add(status);
    }

    workflowTrack.MatchingLocation = workflowLocation;
    profile.WorkflowTrackPoints.Add(workflowTrack);

    TrackingProfileSerializer serializer = new TrackingProfileSerializer();
    StringWriter writer = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture);
    serializer.Serialize(writer, profile);
    string trackingprofile = writer.ToString();
    InsertTrackingProfile(trackingprofile);
}
Shared Sub CreateAndInsertTrackingProfile()
    Dim profile As TrackingProfile = New TrackingProfile()

    Dim activityTrack As ActivityTrackPoint = New ActivityTrackPoint()
    Dim activityLocation As ActivityTrackingLocation = New ActivityTrackingLocation(GetType(Activity))
    activityLocation.MatchDerivedTypes = True
    Dim statuses As IEnumerable(Of ActivityExecutionStatus) = CType(System.Enum.GetValues(GetType(ActivityExecutionStatus)), IEnumerable(Of ActivityExecutionStatus))
    For Each status As ActivityExecutionStatus In statuses
        activityLocation.ExecutionStatusEvents.Add(status)
    Next

    activityTrack.MatchingLocations.Add(activityLocation)
    profile.ActivityTrackPoints.Add(activityTrack)
    profile.Version = version

    Dim workflowTrack As WorkflowTrackPoint = New WorkflowTrackPoint()
    Dim workflowLocation As WorkflowTrackingLocation = New WorkflowTrackingLocation()
    Dim eventStatuses As IEnumerable(Of TrackingWorkflowEvent) = CType(System.Enum.GetValues(GetType(TrackingWorkflowEvent)), IEnumerable(Of TrackingWorkflowEvent))
    For Each status As TrackingWorkflowEvent In eventStatuses
        workflowLocation.Events.Add(status)
    Next

    workflowTrack.MatchingLocation = workflowLocation
    profile.WorkflowTrackPoints.Add(workflowTrack)

    Dim serializer As TrackingProfileSerializer = New TrackingProfileSerializer()
    Dim writer As StringWriter = New StringWriter(New StringBuilder(), CultureInfo.InvariantCulture)
    serializer.Serialize(writer, profile)
    Dim trackingProfile As String = writer.ToString()
    InsertTrackingProfile(trackingProfile)
End Sub

설명

참고

이 자료에서는 더 이상 사용되지 않는 형식과 네임스페이스에 대해 설명합니다. 자세한 내용은 Deprecated Types in Windows Workflow Foundation 4.5(Windows Workflow Foundation 4.5에서 사용되지 않는 형식)를 참조하세요.

워크플로 인스턴스는 런타임 중에 추적 이벤트를 런타임 추적 인프라로 내보냅니다. 런타임 추적 인프라는 TrackingProfile을 사용하여 이러한 추적 이벤트를 필터링하고 이 필터링을 기반으로 추적 레코드를 추적 서비스로 반환합니다. 필터링할 수 있는 세 종류의 추적 이벤트(활동 상태 이벤트, 워크플로 상태 이벤트 및 사용자 이벤트)가 있습니다. 개체를 속성에 ActivityTrackPoints 추가하여 특정 작업 상태 이벤트 WorkflowTrackPoint 와 일치시키고, 개체를 속성에 WorkflowTrackPoints 추가하여 특정 워크플로 상태 이벤트와 일치시키고, 개체를 속성에 UserTrackPoints 추가하여 ActivityTrackPoint 특정 사용자 이벤트와 UserTrackPoint 일치시킬 수 있습니다. 추적 지점이 일치하면 런타임 추적 인프라는 해당 서비스와 연결된 TrackingChannel을 통해 추적 이벤트와 연결된 데이터를 추적 서비스로 반환합니다. 데이터는 일치된 추적 지점의 형식에 따라 ActivityTrackingRecord, WorkflowTrackingRecord 또는 UserTrackingRecord에 반환됩니다.

추적 서비스는 추상 TrackingService 클래스의 메서드를 구현하여 서비스와 연결된 TrackingChannel 및 특정 워크플로 인스턴스나 특정 워크플로 형식과 연결된 TrackingProfile을 요청하는 기능을 런타임 추적 인프라에 제공합니다. 또한 추적 서비스는 추상 TrackingChannel 클래스를 구현하여 런타임 추적 인프라가 추적 레코드를 보낼 수 있는 채널을 제공해야 합니다.

추적 서비스가 추적 프로필 개체를 런타임에 반환하는 경우 워크플로가 실행되기 시작하며 추적 프로필이 serialize됩니다. 추적 프로필의 serialization이 실패하면 워크플로 인스턴스에 예외가 발생합니다. 예외가 처리되지 않으면 워크플로 인스턴스가 종료됩니다. Schema 속성을 사용하여 런타임에 전달하기 전에 추적 프로필의 유효성을 검사할 수 있습니다.

TrackingProfile에 따라 XML 형식을 지정하는 TrackingProfileSerializer를 사용하여 Schema을 XML로 serialize할 수 있습니다. 이는 프로필 스토리지 및 비프로그래밍 방식의 프로필 작성에 편리한 형식을 제공합니다. 예를 들어 SQL Tracking Service는 SqlTrackingService 클래스를 기반으로 만드는 모든 추적 서비스와 마찬가지로 추적 프로필의 serialize된 버전을 저장합니다.

생성자

TrackingProfile()
사용되지 않음.

TrackingProfile의 새 인스턴스를 초기화합니다.

속성

ActivityTrackPoints
사용되지 않음.

런타임 추적 인프라가 활동 상태 이벤트를 필터링하는 데 사용하는 활동 추적 지점 컬렉션을 가져옵니다.

UserTrackPoints
사용되지 않음.

런타임 추적 인프라가 사용자 이벤트를 필터링하는 데 사용하는 사용자 추적 지점 컬렉션을 가져옵니다.

Version
사용되지 않음.

추적 프로필의 버전을 가져오거나 설정합니다.

WorkflowTrackPoints
사용되지 않음.

런타임 추적 인프라가 워크플로 상태 이벤트를 필터링하는 데 사용하는 워크플로 추적 지점 컬렉션을 가져옵니다.

메서드

Equals(Object)
사용되지 않음.

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()
사용되지 않음.

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()
사용되지 않음.

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()
사용되지 않음.

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()
사용되지 않음.

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보