TrackingService.GetProfile Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Należy przesłonić w klasie pochodnej, a po zaimplementowaniu pobiera profil śledzenia dla określonego wystąpienia przepływu pracy lub typu przepływu pracy.
Przeciążenia
GetProfile(Guid) |
Należy zastąpić klasę pochodną, a po zaimplementowaniu zwraca profil śledzenia dla określonego wystąpienia przepływu pracy. |
GetProfile(Type, Version) |
Należy zastąpić klasę pochodną, a po zaimplementowaniu zwraca profil śledzenia kwalifikowany przez wersję dla określonego przepływu pracy Type. |
Uwagi
Usługa śledzenia jest odpowiedzialna za zarządzanie profilami śledzenia dostępnymi dla określonych typów przepływów pracy i określonych wystąpień przepływu pracy. To zarządzanie można zaimplementować w dowolny sposób. Można na przykład zwrócić te same wartości TrackingProfile dla każdego wystąpienia przepływu pracy i przepływu pracy. Można też zarządzać zaawansowanym magazynem profilów śledzenia, do których odwołuje się wystąpienie przepływu pracy Type , przepływ pracy Typei Version.
GetProfile(Guid)
Należy zastąpić klasę pochodną, a po zaimplementowaniu zwraca profil śledzenia dla określonego wystąpienia przepływu pracy.
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
Parametry
Zwraca
Profil śledzenia dla określonego wystąpienia przepływu pracy.
Przykłady
W poniższym przykładzie pokazano implementację GetProfile
metody . W tym przykładzie GetProfile
kilka przeciążeń metody wywołuje pojedynczą metodę prywatną GetProfile
, która zwraca zakodowany, domyślny profil śledzenia. Ten przykład pochodzi z przykładowego zestawu SDK usługi Termination Tracking Service. Aby uzyskać więcej informacji, zobacz Przykład usługi śledzenia zakończenia.
/// <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
Uwagi
Usługa śledzenia jest odpowiedzialna za zarządzanie profilami śledzenia dostępnymi dla określonych typów przepływów pracy i określonych wystąpień przepływu pracy. To zarządzanie można zaimplementować w dowolny sposób. Można na przykład zwrócić te same wartości TrackingProfile dla każdego wystąpienia przepływu pracy i przepływu pracy. Można też zarządzać zaawansowanym magazynem profilów śledzenia, do których odwołuje się wystąpienie przepływu pracy Type , przepływ pracy Typei Version.
Dotyczy
GetProfile(Type, Version)
Należy zastąpić klasę pochodną, a po zaimplementowaniu zwraca profil śledzenia kwalifikowany przez wersję dla określonego przepływu pracy 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
Parametry
Zwraca
Profil śledzenia dla określonego typu przepływu pracy.
Uwagi
Usługa śledzenia jest odpowiedzialna za zarządzanie profilami śledzenia dostępnymi dla określonych typów przepływów pracy i określonych wystąpień przepływu pracy. To zarządzanie można zaimplementować w dowolny sposób. Można na przykład zwrócić te same wartości TrackingProfile dla każdego wystąpienia przepływu pracy i przepływu pracy. Można też zarządzać zaawansowanym magazynem profilów śledzenia, do których odwołuje się wystąpienie przepływu pracy Type , przepływ pracy Typei Version.