TrackingService.GetProfile Methode

Definition

Muss in der abgeleiteten Klasse überschrieben werden und ruft bei der Implementierung das Verfolgungsprofil für eine angegebene Workflowinstanz oder einen Workflowtyp ab.Must be overridden in the derived class, and when implemented, gets the tracking profile for a specified workflow instance or workflow type.

Überlädt

GetProfile(Guid)

Muss in der abgeleiteten Klasse überschrieben werden und gibt bei der Implementierung das Verfolgungsprofil für die angegebene Workflowinstanz zurück.Must be overridden in the derived class, and when implemented, returns the tracking profile for the specified workflow instance.

GetProfile(Type, Version)

Muss in der abgeleiteten Klasse überschrieben werden und gibt bei der Implementierung das durch die Version bestimmte Verfolgungsprofil für den angegebenen Workflow-Type zurück.Must be overridden in the derived class, and when implemented, returns the tracking profile, qualified by version, for the specified workflow Type.

Hinweise

Ein Überwachungsdienst übernimmt die Verwaltung der für bestimmte Workflowtypen und Workflowinstanzen verfügbaren Verfolgungsprofile.A tracking service is responsible for managing the tracking profiles available for specific workflow types and specific workflow instances. Sie können diese Verwaltung nach Bedarf beliebig implementieren.You can implement this management in whatever manner you choose. Sie können z. B. dasselbe TrackingProfile für jeden Workflow-Type und jede Workflowinstanz zurückgeben; oder Sie verwalten einen erweiterten Speicher mit Verfolgungsprofilen, auf die von der Workflowinstanz, dem Workflow-Type und Version verwiesen wird.For example, you can return the same TrackingProfile for every workflow Type and workflow instance; or you can manage a sophisticated store of tracking profiles referenced by workflow instance, workflow Type, and Version.

GetProfile(Guid)

Muss in der abgeleiteten Klasse überschrieben werden und gibt bei der Implementierung das Verfolgungsprofil für die angegebene Workflowinstanz zurück.Must be overridden in the derived class, and when implemented, returns the tracking profile for the specified workflow instance.

protected public:
 abstract System::Workflow::Runtime::Tracking::TrackingProfile ^ GetProfile(Guid workflowInstanceId);
protected internal abstract System.Workflow.Runtime.Tracking.TrackingProfile GetProfile (Guid workflowInstanceId);
abstract member GetProfile : Guid -> System.Workflow.Runtime.Tracking.TrackingProfile
Protected Friend MustOverride Function GetProfile (workflowInstanceId As Guid) As TrackingProfile

Parameter

workflowInstanceId
Guid

Guid der Workflowinstanz.The Guid of the workflow instance.

Gibt zurück

Das Nachverfolgungsprofil für die angegebenen Workflowinstanz.The tracking profile for the specified workflow instance.

Beispiele

Im folgenden Beispiel wird eine Implementierung der GetProfile-Methode veranschaulicht.The following example shows an implementation of the GetProfile method. In diesem Beispiel rufen verschiedene Überladungen der GetProfile-Methode eine einzelne private GetProfile-Methode auf, die ein hartcodiertes Standardverfolgungsprofil zurückgibt.In this example, several overloads of the GetProfile method call a single private GetProfile method, which returns a hard-coded, default tracking profile. Dieses Beispiel stammt aus dem Termination Tracking Service SDK-Beispiel.This example is from the Termination Tracking Service SDK sample. Weitere Informationen finden Sie unter Beispiel für den Abbruch Verfolgungs Dienst.For more information, see Termination Tracking Service Sample.

/// <summary>
/// Returns a static tracking profile that only tracks instance terminated events.
/// </summary>
protected override TrackingProfile GetProfile(Guid workflowInstanceId)
{
    return GetProfile();
}
private volatile static TrackingProfile profile = null;
private bool sourceExists = false;
private TrackingProfile GetProfile()
{
    //
    // We shouldn't hit this point without the host ignoring an earlier exception.
    // However if we're here and the source doesn't exist we can't function.
    // Throwing an exception from here will block instance creation
    // but that is better than failing silently on termination 
    // and having the admin think everything is OK because the event log is clear.
    if (!sourceExists)
        throw new InvalidOperationException(string.Format(System.Globalization.CultureInfo.InvariantCulture, "EventLog Source with the name '{0}' does not exist", source));

    //
    // The profile for this instance will never change
    if (null == profile)
    {
        lock (typeof(TerminationTrackingService))
        {
            if (null == profile)
            {
                profile = new TrackingProfile();
                profile.Version = new Version("3.0.0.0");
                WorkflowTrackPoint point = new WorkflowTrackPoint();
                point.MatchingLocation = new WorkflowTrackingLocation();
                point.MatchingLocation.Events.Add(TrackingWorkflowEvent.Terminated);
                profile.WorkflowTrackPoints.Add(point);
            }
        }
    }
    return profile;
}
'/ <summary>
'/ Returns a Shared tracking profile that only tracks instance terminated events.
'/ </summary>
Protected Overrides Function GetProfile(ByVal workflowInstanceId As Guid) As TrackingProfile
    Return GetProfile()
End Function

Private Shared profile As TrackingProfile = Nothing
Private sourceExists As Boolean = False
Private Overloads Function GetProfile() As TrackingProfile

    '
    ' We shouldn't hit me point without the host ignoring an earlier exception.
    ' However if we're here and the source doesn't exist we can't function.
    ' Throwing an exception from here will block instance creation
    ' but that is better than failing silently on termination 
    ' and having the admin think everything is OK because the event log is clear.
    If Not sourceExists Then
        Throw New InvalidOperationException(String.Format(System.Globalization.CultureInfo.InvariantCulture, "EventLog Source with the name '0}' does not exist", source))
    End If
    '
    ' The profile for me instance will never change
    If profile Is Nothing Then

        SyncLock (GetType(TerminationTrackingService))

            If profile Is Nothing Then

                profile = New TrackingProfile()
                profile.Version = New Version("3.0.0.0")
                Dim point As New WorkflowTrackPoint()
                point.MatchingLocation = New WorkflowTrackingLocation()
                point.MatchingLocation.Events.Add(TrackingWorkflowEvent.Terminated)
                profile.WorkflowTrackPoints.Add(point)
            End If
        End SyncLock

    End If

    Return profile
End Function

Hinweise

Ein Überwachungsdienst übernimmt die Verwaltung der für bestimmte Workflowtypen und Workflowinstanzen verfügbaren Verfolgungsprofile.A tracking service is responsible for managing the tracking profiles available for specific workflow types and specific workflow instances. Sie können diese Verwaltung nach Bedarf beliebig implementieren.You can implement this management in whatever manner you choose. Sie können z. B. dasselbe TrackingProfile für jeden Workflow-Type und jede Workflowinstanz zurückgeben; oder Sie verwalten einen erweiterten Speicher mit Verfolgungsprofilen, auf die von der Workflowinstanz, dem Workflow-Type und Version verwiesen wird.For example, you can return the same TrackingProfile for every workflow Type and workflow instance; or you can manage a sophisticated store of tracking profiles referenced by workflow instance, workflow Type, and Version.

GetProfile(Type, Version)

Muss in der abgeleiteten Klasse überschrieben werden und gibt bei der Implementierung das durch die Version bestimmte Verfolgungsprofil für den angegebenen Workflow-Type zurück.Must be overridden in the derived class, and when implemented, returns the tracking profile, qualified by version, for the specified workflow Type.

protected public:
 abstract System::Workflow::Runtime::Tracking::TrackingProfile ^ GetProfile(Type ^ workflowType, Version ^ profileVersionId);
protected internal abstract System.Workflow.Runtime.Tracking.TrackingProfile GetProfile (Type workflowType, Version profileVersionId);
abstract member GetProfile : Type * Version -> System.Workflow.Runtime.Tracking.TrackingProfile
Protected Friend MustOverride Function GetProfile (workflowType As Type, profileVersionId As Version) As TrackingProfile

Parameter

workflowType
Type

Der Type des Workflows.The Type of the workflow.

profileVersionId
Version

Version des Verfolgungsprofils.The Version of the tracking profile.

Gibt zurück

Das Nachverfolgungsprofil für den angegebenen Workflowtyp.The tracking profile for the specified workflow type.

Hinweise

Ein Überwachungsdienst übernimmt die Verwaltung der für bestimmte Workflowtypen und Workflowinstanzen verfügbaren Verfolgungsprofile.A tracking service is responsible for managing the tracking profiles available for specific workflow types and specific workflow instances. Sie können diese Verwaltung nach Bedarf beliebig implementieren.You can implement this management in whatever manner you choose. Sie können z. B. dasselbe TrackingProfile für jeden Workflow-Type und jede Workflowinstanz zurückgeben; oder Sie verwalten einen erweiterten Speicher mit Verfolgungsprofilen, auf die von der Workflowinstanz, dem Workflow-Type und Version verwiesen wird.For example, you can return the same TrackingProfile for every workflow Type and workflow instance; or you can manage a sophisticated store of tracking profiles referenced by workflow instance, workflow Type, and Version.

Gilt für: