TrackingProfile TrackingProfile TrackingProfile TrackingProfile Class

Определение

Предупреждение

Этот API устарел.

Определяет интересующие точки по потенциальному пути исполнения экземпляра корневого рабочего процесса, о которых служба отслеживания должна быть оповещена.Defines points of interest in the potential execution path of a root workflow instance about which a tracking service should be notified.

public ref class TrackingProfile
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
[System.Serializable]
public class TrackingProfile
type TrackingProfile = class
Public Class TrackingProfile
Наследование
TrackingProfileTrackingProfileTrackingProfileTrackingProfile
Атрибуты

Примеры

Следующий пример кода демонстрирует создание класса TrackingProfile с помощью метода конструктора TrackingProfile и использование свойств объекта для упрощения отслеживания выполнения рабочего процесса.The following code example demonstrates how you can create a TrackingProfile using the TrackingProfile constructor and use the object's properties to help track the execution of a workflow. В примере кода используются свойства ActivityTrackPoints, Version и WorkflowTrackPoints.The example code uses the ActivityTrackPoints, Version, and WorkflowTrackPoints properties.

Данный пример кода является частью образца пакета SDK "Query using SQLTrackingService" из файла Program.cs.This code example is part of the Query using SQLTrackingService SDK sample from the Program.cs file. Дополнительные сведения см. в разделе запроса с использованием службы SQLTrackingService.For more information, see Query Using 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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен.This material discusses types and namespaces that are obsolete. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

Во время выполнения экземпляр рабочего процесса выпускает события отслеживания в инфраструктуру отслеживания среды выполнения.During its run time, a workflow instance emits tracking events to the runtime tracking infrastructure. Инфраструктура отслеживания среды выполнения использует класс TrackingProfile для фильтрации этих событий отслеживания и возвращает записи отслеживания после этой фильтрации службе отслеживания.The runtime tracking infrastructure uses a TrackingProfile to filter these tracking events and returns tracking records based on this filtering to a tracking service. Существует три вида событий отслеживания, которые можно фильтровать: события состояния действия, события состояния рабочего процесса и события пользователя.There are three kinds of tracking events that can be filtered: activity status events, workflow status events, and user events. Можно добавлять объекты ActivityTrackPoint в свойство ActivityTrackPoints, чтобы найти совпадение с конкретным событием состояния действия; объекты WorkflowTrackPoint в свойство WorkflowTrackPoints, чтобы найти совпадение с конкретным событием состояния рабочего процесса; и объекты UserTrackPoint в свойство UserTrackPoints, чтобы найти совпадение с конкретными событиями пользователя.You can add ActivityTrackPoint objects to the ActivityTrackPoints property to match specific activity status events; WorkflowTrackPoint objects to the WorkflowTrackPoints property to match specific workflow status events; and UserTrackPoint objects to the UserTrackPoints property to match specific user events. При совпадении точки отслеживания инфраструктура отслеживания среды выполнения возвращает данные, связанные с событием отслеживания, службе отслеживания посредством класса TrackingChannel, связанного с этой службой.When a track point is matched, the runtime tracking infrastructure returns the data associated with the tracking event to the tracking service over the TrackingChannel associated with that service. Данные возвращаются либо в классе ActivityTrackingRecord, классе WorkflowTrackingRecord или классе UserTrackingRecord в зависимости от типа найденной точки отслеживания.The data is returned in either an ActivityTrackingRecord, a WorkflowTrackingRecord, or a UserTrackingRecord depending on the type of track point that was matched.

Служба отслеживания реализует метод в абстрактном классе TrackingService, чтобы предоставить функциональные возможности инфраструктуре отслеживания среды выполнения для запроса класса TrackingChannel, связанного со службой, и класса TrackingProfile, связанного с данным экземпляром или типом рабочего процесса.A tracking service implements the methods in the abstract TrackingService class to provide the functionality for the runtime tracking infrastructure to request a TrackingChannel associated with the service, and a TrackingProfile associated with a particular workflow instance or with a particular workflow type. Служба отслеживания должна также применять абстрактный класс TrackingChannel, чтобы предоставить канал, по которому инфраструктура отслеживания среды выполнения может отправить записи отслеживания.A tracking service must also implement the abstract TrackingChannel class to provide the channel over which the runtime tracking infrastructure can send tracking records.

Когда служба отслеживания возвращает объект профиля отслеживания в среду выполнения, рабочий процесс начинает выполняться и профиль отслеживания сериализуется.When the tracking service returns a tracking profile object to the runtime, the workflow starts to execute, and the tracking profile is serialized. Если сериализация профиля отслеживания не происходит, то создается исключение экземпляра рабочего процесса.If the serialization of the tracking profile fails, an exception is raised to the workflow instance. Если исключение не обработано, то экземпляр рабочего процесса завершается.If the exception is not handled, the workflow instance is terminated. Профиль отслеживания может быть проверен до передачи его в среду выполнения при помощи свойства Schema.The tracking profile can be validated before passing it to the runtime using the Schema property.

Класс TrackingProfile может быть сериализован в формат XML при помощи класса TrackingProfileSerializer, который форматирует XML в соответствии со свойством Schema.A TrackingProfile can be serialized to XML by using the TrackingProfileSerializer, which formats the XML according to the Schema. В результате получается удобный формат для хранения профилей и для разработки профилей не программным путем.This provides a convenient format for profile storage and for authoring a profile in a non-programmatic manner. Например, служба отслеживания SQL хранит сериализованные версии профилей отслеживания как и любая другая служба отслеживания на базе класса SqlTrackingService.For example, the SQL Tracking Service stores serialized versions of its tracking profiles, as will any tracking service you create based on the SqlTrackingService class.

Конструкторы

TrackingProfile() TrackingProfile() TrackingProfile() TrackingProfile()

Инициализирует новый экземпляр TrackingProfile.Initializes a new instance of TrackingProfile.

Свойства

ActivityTrackPoints ActivityTrackPoints ActivityTrackPoints ActivityTrackPoints

Получает коллекцию точек отслеживания действий, используемых инфраструктурой отслеживания среды выполнения для фильтрации событий состояния действий.Gets the collection of activity track points used by the runtime tracking infrastructure to filter activity status events.

UserTrackPoints UserTrackPoints UserTrackPoints UserTrackPoints

Получает коллекцию точек отслеживания пользователя, используемых инфраструктурой отслеживания среды выполнения для фильтрации событий пользователя.Gets the collection of user track points used by the runtime tracking infrastructure to filter user events.

Version Version Version Version

Получает или задает версию профиля отслеживания.Gets or sets the version of the tracking profile.

WorkflowTrackPoints WorkflowTrackPoints WorkflowTrackPoints WorkflowTrackPoints

Получает коллекцию точек отслеживания рабочего процесса, используемых инфраструктурой отслеживания среды выполнения для фильтрации событий состояния рабочего процесса.Gets the collection of workflow track points used by the runtime tracking infrastructure to filter workflow status events.

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Применяется к

Дополнительно