TrackingService.GetProfile Methode
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.
Muss in der abgeleiteten Klasse überschrieben werden und ruft bei der Implementierung das Verfolgungsprofil für eine angegebene Workflowinstanz oder einen Workflowtyp ab.
Ü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. |
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. |
Hinweise
Ein Überwachungsdienst übernimmt die Verwaltung der für bestimmte Workflowtypen und Workflowinstanzen verfügbaren Verfolgungsprofile. Sie können diese Verwaltung nach Bedarf beliebig implementieren. 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.
GetProfile(Guid)
Muss in der abgeleiteten Klasse überschrieben werden und gibt bei der Implementierung das Verfolgungsprofil für die angegebene Workflowinstanz zurück.
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
Gibt zurück
Das Nachverfolgungsprofil für die angegebenen Workflowinstanz.
Beispiele
Im folgenden Beispiel wird eine Implementierung der GetProfile
-Methode veranschaulicht. In diesem Beispiel rufen verschiedene Überladungen der GetProfile
-Methode eine einzelne private GetProfile
-Methode auf, die ein hartcodiertes Standardverfolgungsprofil zurückgibt. Dieses Beispiel stammt aus dem Termination Tracking Service SDK-Beispiel. Weitere Informationen finden Sie im Beispiel zum Beenden des Nachverfolgungsdiensts.
/// <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. Sie können diese Verwaltung nach Bedarf beliebig implementieren. 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.
Gilt für
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.
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
Gibt zurück
Das Nachverfolgungsprofil für den angegebenen Workflowtyp.
Hinweise
Ein Überwachungsdienst übernimmt die Verwaltung der für bestimmte Workflowtypen und Workflowinstanzen verfügbaren Verfolgungsprofile. Sie können diese Verwaltung nach Bedarf beliebig implementieren. 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.