TrackingProfile Klasse

Definition

Warnung

Diese API ist jetzt veraltet.

Definiert relevante Punkte im möglichen Ausführungspfad einer Stammworkflowinstanz, zu denen ein Überwachungsdienst benachrichtigt werden soll.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
Vererbung
TrackingProfile
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie mit TrackingProfile ein TrackingProfile erstellt wird.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. Dieses Codebeispiel verwendet die Eigenschaften ActivityTrackPoints, Version und WorkflowTrackPoints.The example code uses the ActivityTrackPoints, Version, and WorkflowTrackPoints properties.

Dieses Codebeispiel stammt aus dem Query using SQLTrackingService SDK-Beispiel in der Datei Program.cs.This code example is part of the Query using SQLTrackingService SDK sample from the Program.cs file. Weitere Informationen finden Sie unter Abfragen mit 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

Hinweise

Hinweis

In diesem Material werden veraltete Typen und Namespaces erläutert.This material discusses types and namespaces that are obsolete. Weitere Informationen finden Sie unter Veraltete Typen in Windows Workflow Foundation 4.5.For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

Während eine Workflowinstanz ausgeführt wird, gibt sie Verfolgungsereignisse an die Laufzeitverfolgungsinfrastruktur aus.During its run time, a workflow instance emits tracking events to the runtime tracking infrastructure. Die Laufzeitverfolgungsinfrastruktur verwendet ein TrackingProfile, um diese Verfolgungsereignisse zu filtern, und gibt Verfolungsdaten basierend auf diesem Filter an einen Überwachungsdienst zurück.The runtime tracking infrastructure uses a TrackingProfile to filter these tracking events and returns tracking records based on this filtering to a tracking service. Es gibt drei Arten von Verfolgungsereignissen, die gefiltert werden können: Aktivitätsstatusereignisse, Workflowstatusereignisse und Benutzerereignisse.There are three kinds of tracking events that can be filtered: activity status events, workflow status events, and user events. Sie können der ActivityTrackPoint-Eigenschaft ActivityTrackPoints-Objekte hinzufügen, um bestimmte Aktivitätsstatusereignisse abzugleichen; der WorkflowTrackPoint-Eigenschaft WorkflowTrackPoints-Objekte, um bestimmte Workflowstatusereignisse abzugleichen; und der UserTrackPoint-Eigenschaft UserTrackPoints-Objekte, um bestimmte Benutzerereignisse abzugleichen.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. Beim Abgleich eines Verfolgungspunkts gibt die Laufzeitverfolgungsinfrastruktur die Daten, die dem Verfolgungsereignis zugeordnet sind, an den Überwachungsdienst zurück. Dazu wird der TrackingChannel verwendet, der dem Überwachungsdienst zugeordnet ist.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. Die Daten werden je nach dem Typ des abgeglichenen Verfolgungspunkt entweder in ActivityTrackingRecord, WorkflowTrackingRecord oder UserTrackingRecord zurückgegeben.The data is returned in either an ActivityTrackingRecord, a WorkflowTrackingRecord, or a UserTrackingRecord depending on the type of track point that was matched.

Ein Überwachungsdienst implementiert die Methoden in der abstrakten TrackingService-Klasse. Damit wird für die Laufzeitverfolgungsinfrastruktur die Funktionalität zum Anfordern eines dem Dienst zugeordneten TrackingChannel und ein TrackingProfile bereitgestellt, das einer bestimmten Workflowinstanz oder einem bestimmten Workflowtyp zugeordnet ist.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. Ein Überwachungsdienst muss auch die abstrakte TrackingChannel-Klasse implementieren, um den Kanal bereitzustellen, über den die Laufzeitverfolgungsinfrastruktur Verfolgungsdatensätze sendet.A tracking service must also implement the abstract TrackingChannel class to provide the channel over which the runtime tracking infrastructure can send tracking records.

Wenn der Überwachungsdienst ein Verfolgungsprofilobjekt an das Laufzeitmodul zurückgibt, beginnt die Ausführung des Workflows und das Verfolgungsprofil wird serialisiert.When the tracking service returns a tracking profile object to the runtime, the workflow starts to execute, and the tracking profile is serialized. Schlägt die Serialisierung des Verfolgungsprofils fehl, wird eine Ausnahme für die Workflowinstanz ausgelöst.If the serialization of the tracking profile fails, an exception is raised to the workflow instance. Wenn die Ausnahme nicht behandelt wird, wird die Workflowinstanz beendet.If the exception is not handled, the workflow instance is terminated. Das Verfolgungsprofil kann vor der Übergabe an das Laufzeitmodul mit der Schema-Eigenschaft überprüft werden.The tracking profile can be validated before passing it to the runtime using the Schema property.

TrackingProfile kann mit TrackingProfileSerializer serialisiert werden. Dabei wird XML nach dem Schema formatiert.A TrackingProfile can be serialized to XML by using the TrackingProfileSerializer, which formats the XML according to the Schema. Dieses Format eignet sich besonders zum Speichern von Profilen und zum nicht programmgesteuerten Erstellen von Profilen.This provides a convenient format for profile storage and for authoring a profile in a non-programmatic manner. Der SQL-Überwachungsdienst beispielsweise speichert serialisierte Versionen seiner Verfolgungsprofile. Auch Überwachungsdienste, die Sie basierend auf der SqlTrackingService-Klasse erstellen, speichern serialisierte Profile.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.

Konstruktoren

TrackingProfile()

Initialisiert eine neue Instanz von TrackingProfile.Initializes a new instance of TrackingProfile.

Eigenschaften

ActivityTrackPoints

Ruft die Auflistung der Aktivitätsverfolgungspunkte ab, die von der Laufzeitverfolgungsinfrastruktur zum Filtern von Aktivitätsstatusereignissen verwendet werden.Gets the collection of activity track points used by the runtime tracking infrastructure to filter activity status events.

UserTrackPoints

Ruft die Auflistung der Benutzerverfolgungspunkte ab, die von der Laufzeitverfolgungsinfrastruktur zum Filtern von Benutzerereignissen verwendet werden.Gets the collection of user track points used by the runtime tracking infrastructure to filter user events.

Version

Ruft die Versionsnummer des Verfolgungsprofils ab oder legt die Nummer fest.Gets or sets the version of the tracking profile.

WorkflowTrackPoints

Ruft die Auflistung der Workflowverfolgungspunkte ab, die von der Laufzeitverfolgungsinfrastruktur zum Filtern von Workflowstatusereignissen verwendet werden.Gets the collection of workflow track points used by the runtime tracking infrastructure to filter workflow status events.

Methoden

Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für:

Siehe auch