TrackingProfile Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Achtung
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
Definiert relevante Punkte im möglichen Ausführungspfad einer Stammworkflowinstanz, zu denen ein Überwachungsdienst benachrichtigt werden soll.
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
- Vererbung
-
TrackingProfile
- Attribute
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie mit TrackingProfile ein TrackingProfile erstellt wird. Dieses Codebeispiel verwendet die Eigenschaften ActivityTrackPoints, Version und WorkflowTrackPoints.
Dieses Codebeispiel stammt aus dem Query using SQLTrackingService SDK-Beispiel in der Datei Program.cs. Weitere Informationen finden Sie unter Abfrage mithilfe von 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. Weitere Informationen finden Sie unter Veraltete Typen in Windows Workflow Foundation 4.5.
Während eine Workflowinstanz ausgeführt wird, gibt sie Verfolgungsereignisse an die Laufzeitverfolgungsinfrastruktur aus. Die Laufzeitverfolgungsinfrastruktur verwendet ein TrackingProfile, um diese Verfolgungsereignisse zu filtern, und gibt Verfolungsdaten basierend auf diesem Filter an einen Überwachungsdienst zurück. Es gibt drei Arten von Verfolgungsereignissen, die gefiltert werden können: Aktivitätsstatusereignisse, Workflowstatusereignisse und Benutzerereignisse. Sie können der ActivityTrackPoints -Eigenschaft Objekte hinzufügenActivityTrackPoint, um bestimmte Aktivitätsstatusereignisse abzugleichen. WorkflowTrackPoint Objekte mit der WorkflowTrackPoints -Eigenschaft, um bestimmte Workflowstatusereignisse abzugleichen, und UserTrackPoint Objekte mit der UserTrackPoints -Eigenschaft, um bestimmte Benutzerereignisse abzugleichen. 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. Die Daten werden je nach dem Typ des abgeglichenen Verfolgungspunkt entweder in ActivityTrackingRecord, WorkflowTrackingRecord oder UserTrackingRecord zurückgegeben.
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. Ein Überwachungsdienst muss auch die abstrakte TrackingChannel-Klasse implementieren, um den Kanal bereitzustellen, über den die Laufzeitverfolgungsinfrastruktur Verfolgungsdatensätze sendet.
Wenn der Überwachungsdienst ein Verfolgungsprofilobjekt an das Laufzeitmodul zurückgibt, beginnt die Ausführung des Workflows und das Verfolgungsprofil wird serialisiert. Schlägt die Serialisierung des Verfolgungsprofils fehl, wird eine Ausnahme für die Workflowinstanz ausgelöst. Wenn die Ausnahme nicht behandelt wird, wird die Workflowinstanz beendet. Das Verfolgungsprofil kann vor der Übergabe an das Laufzeitmodul mit der Schema-Eigenschaft überprüft werden.
TrackingProfile kann mit TrackingProfileSerializer serialisiert werden. Dabei wird XML nach dem Schema formatiert. Dieses Format eignet sich besonders zum Speichern von Profilen und zum nicht programmgesteuerten Erstellen von Profilen. Der SQL-Überwachungsdienst beispielsweise speichert serialisierte Versionen seiner Verfolgungsprofile. Auch Überwachungsdienste, die Sie basierend auf der SqlTrackingService-Klasse erstellen, speichern serialisierte Profile.
Konstruktoren
TrackingProfile() |
Veraltet.
Initialisiert eine neue Instanz von TrackingProfile. |
Eigenschaften
ActivityTrackPoints |
Veraltet.
Ruft die Auflistung der Aktivitätsverfolgungspunkte ab, die von der Laufzeitverfolgungsinfrastruktur zum Filtern von Aktivitätsstatusereignissen verwendet werden. |
UserTrackPoints |
Veraltet.
Ruft die Auflistung der Benutzerverfolgungspunkte ab, die von der Laufzeitverfolgungsinfrastruktur zum Filtern von Benutzerereignissen verwendet werden. |
Version |
Veraltet.
Ruft die Versionsnummer des Verfolgungsprofils ab oder legt die Nummer fest. |
WorkflowTrackPoints |
Veraltet.
Ruft die Auflistung der Workflowverfolgungspunkte ab, die von der Laufzeitverfolgungsinfrastruktur zum Filtern von Workflowstatusereignissen verwendet werden. |
Methoden
Equals(Object) |
Veraltet.
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Veraltet.
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Veraltet.
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Veraltet.
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Veraltet.
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |