Поделиться через


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, Version и WorkflowTrackPoints.

Данный пример кода является частью образца пакета SDK "Query using SQLTrackingService" из файла Program.cs. Дополнительные сведения см. в статье Запрос с помощью 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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.

Во время выполнения экземпляр рабочего процесса выпускает события отслеживания в инфраструктуру отслеживания среды выполнения. Инфраструктура отслеживания среды выполнения использует класс TrackingProfile для фильтрации этих событий отслеживания и возвращает записи отслеживания после этой фильтрации службе отслеживания. Существует три вида событий отслеживания, которые можно фильтровать: события состояния действия, события состояния рабочего процесса и события пользователя. Вы можете добавлять ActivityTrackPoint объекты в ActivityTrackPoints свойство , чтобы соответствовать определенным событиям состояния действия; WorkflowTrackPoint объекты в WorkflowTrackPoints свойство , чтобы соответствовать определенным событиям состояния рабочего процесса; и UserTrackPoint объекты в UserTrackPoints свойство , чтобы соответствовать конкретным событиям пользователя. При совпадении точки отслеживания инфраструктура отслеживания среды выполнения возвращает данные, связанные с событием отслеживания, службе отслеживания посредством класса TrackingChannel, связанного с этой службой. Данные возвращаются либо в классе ActivityTrackingRecord, классе WorkflowTrackingRecord или классе UserTrackingRecord в зависимости от типа найденной точки отслеживания.

Служба отслеживания реализует метод в абстрактном классе TrackingService, чтобы предоставить функциональные возможности инфраструктуре отслеживания среды выполнения для запроса класса TrackingChannel, связанного со службой, и класса TrackingProfile, связанного с данным экземпляром или типом рабочего процесса. Служба отслеживания должна также применять абстрактный класс TrackingChannel, чтобы предоставить канал, по которому инфраструктура отслеживания среды выполнения может отправить записи отслеживания.

Когда служба отслеживания возвращает объект профиля отслеживания в среду выполнения, рабочий процесс начинает выполняться и профиль отслеживания сериализуется. Если сериализация профиля отслеживания не происходит, то создается исключение экземпляра рабочего процесса. Если исключение не обработано, то экземпляр рабочего процесса завершается. Профиль отслеживания может быть проверен до передачи его в среду выполнения при помощи свойства Schema.

Класс TrackingProfile может быть сериализован в формат XML при помощи класса TrackingProfileSerializer, который форматирует XML в соответствии со свойством Schema. В результате получается удобный формат для хранения профилей и для разработки профилей не программным путем. Например, служба отслеживания SQL хранит сериализованные версии профилей отслеживания как и любая другая служба отслеживания на базе класса SqlTrackingService.

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

TrackingProfile()
Устаревшие..

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

Свойства

ActivityTrackPoints
Устаревшие..

Получает коллекцию точек отслеживания действий, используемых инфраструктурой отслеживания среды выполнения для фильтрации событий состояния действий.

UserTrackPoints
Устаревшие..

Получает коллекцию точек отслеживания пользователя, используемых инфраструктурой отслеживания среды выполнения для фильтрации событий пользователя.

Version
Устаревшие..

Получает или задает версию профиля отслеживания.

WorkflowTrackPoints
Устаревшие..

Получает коллекцию точек отслеживания рабочего процесса, используемых инфраструктурой отслеживания среды выполнения для фильтрации событий состояния рабочего процесса.

Методы

Equals(Object)
Устаревшие..

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()
Устаревшие..

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()
Устаревшие..

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

(Унаследовано от Object)
MemberwiseClone()
Устаревшие..

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()
Устаревшие..

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

См. также раздел