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,以及如何使用对象的属性来帮助跟踪工作流的执行。 该示例代码使用 ActivityTrackPointsVersionWorkflowTrackPoints 属性。

此代码示例摘自 Program.cs 文件中的“使用 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

注解

注意

本材料讨论的类型和命名空间已废弃不用。 有关详细信息,请参阅 Windows Workflow Foundation 4.5 中弃用的类型

工作流实例在运行时期间会将跟踪事件发出到运行时跟踪基础结构。 运行时跟踪基础结构使用 TrackingProfile 筛选这些跟踪事件,并基于此筛选将跟踪记录返回到跟踪服务。 有三种可以筛选的跟踪事件:活动状态事件、工作流状态事件以及用户事件。 可以将 对象添加到 ActivityTrackPointActivityTrackPoints 属性以匹配特定的活动状态事件; WorkflowTrackPoint 将 对象添加到 WorkflowTrackPoints 属性以匹配特定的工作流状态事件;将 UserTrackPoint 对象添加到 UserTrackPoints 属性以匹配特定的用户事件。 匹配了跟踪点后,运行时跟踪基础结构将通过与跟踪服务关联的 TrackingChannel 将与跟踪事件关联的数据返回到该跟踪服务。 数据将在 ActivityTrackingRecordWorkflowTrackingRecordUserTrackingRecord 中返回,具体情况取决于匹配的跟踪点的类型。

跟踪服务在抽象 TrackingService 类中实现方法以提供功能,供运行时跟踪基础结构请求与服务关联的 TrackingChannel,以及与特定工作流实例或特定工作流类型关联的 TrackingProfile。 跟踪服务还必须实现抽象 TrackingChannel 类以提供通道,运行时跟踪基础结构可以通过该通道发送跟踪记录。

当跟踪服务将跟踪配置文件对象返回到运行库时,工作流将开始执行,并对跟踪配置文件进行序列化。 如果跟踪配置文件的序列化失败,则会将一个异常引发到工作流实例。 如果异常未得到处理,工作流实例将终止。 在将跟踪配置文件传递到运行库之前,可以使用 Schema 属性对其进行验证。

可以使用 TrackingProfile(它将依据 TrackingProfileSerializer 设置 XML 格式)将 Schema 序列化为 XML。 这样就为配置文件存储和以非编程方式编写配置文件提供了一种方便的格式。 例如,SQL 跟踪服务存储其跟踪配置文件的序列化版本,您基于 SqlTrackingService 类创建的任何跟踪服务也同样如此。

构造函数

TrackingProfile()
已过时.

初始化 TrackingProfile 的新实例。

属性

ActivityTrackPoints
已过时.

获取运行时跟踪基础结构用于筛选活动状态事件的活动跟踪点的集合。

UserTrackPoints
已过时.

获取运行时跟踪基础结构用于筛选用户事件的用户跟踪点的集合。

Version
已过时.

获取或设置跟踪配置文件的版本。

WorkflowTrackPoints
已过时.

获取运行时跟踪基础结构用于筛选工作流状态事件的工作流跟踪点的集合。

方法

Equals(Object)
已过时.

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()
已过时.

作为默认哈希函数。

(继承自 Object)
GetType()
已过时.

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()
已过时.

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()
已过时.

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅