TrackingService.GetProfile Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Musí být přepsán v odvozené třídě a při implementaci získá sledovací profil pro zadanou instanci pracovního postupu nebo typ pracovního postupu.
Přetížení
GetProfile(Guid) |
Musí být přepsán v odvozené třídě a při implementaci vrátí sledovací profil pro zadanou instanci pracovního postupu. |
GetProfile(Type, Version) |
Musí být přepsán v odvozené třídě a při implementaci vrátí sledovací profil kvalifikovaný podle verze pro zadaný pracovní postup Type. |
Poznámky
Sledovací služba zodpovídá za správu sledovacích profilů dostupných pro konkrétní typy pracovních postupů a konkrétní instance pracovního postupu. Tuto správu můžete implementovat jakýmkoli způsobem, který zvolíte. Můžete například vrátit totéž TrackingProfile pro každý pracovní postup a instanci pracovního postupu Type . Nebo můžete spravovat sofistikované úložiště profilů sledování, na které odkazuje instance pracovního postupu, pracovní postup Typea Version.
GetProfile(Guid)
Musí být přepsán v odvozené třídě a při implementaci vrátí sledovací profil pro zadanou instanci pracovního postupu.
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
Návraty
Profil sledování pro zadanou instanci pracovního postupu.
Příklady
Následující příklad ukazuje implementaci GetProfile
metody. V tomto příkladu GetProfile
několik přetížení metody volá jednu privátní GetProfile
metodu, která vrací pevně zakódovaný výchozí sledovací profil. Tento příklad je z ukázky sady SDK pro sledování ukončení. Další informace najdete v tématu Ukázka služby sledování ukončení.
/// <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
Poznámky
Sledovací služba zodpovídá za správu sledovacích profilů dostupných pro konkrétní typy pracovních postupů a konkrétní instance pracovního postupu. Tuto správu můžete implementovat jakýmkoli způsobem, který zvolíte. Můžete například vrátit totéž TrackingProfile pro každý pracovní postup a instanci pracovního postupu Type . Nebo můžete spravovat sofistikované úložiště profilů sledování, na které odkazuje instance pracovního postupu, pracovní postup Typea Version.
Platí pro
GetProfile(Type, Version)
Musí být přepsán v odvozené třídě a při implementaci vrátí sledovací profil kvalifikovaný podle verze pro zadaný pracovní postup 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
Návraty
Profil sledování pro zadaný typ pracovního postupu.
Poznámky
Sledovací služba zodpovídá za správu sledovacích profilů dostupných pro konkrétní typy pracovních postupů a konkrétní instance pracovního postupu. Tuto správu můžete implementovat jakýmkoli způsobem, který zvolíte. Můžete například vrátit totéž TrackingProfile pro každý pracovní postup a instanci pracovního postupu Type . Nebo můžete spravovat sofistikované úložiště profilů sledování, na které odkazuje instance pracovního postupu, pracovní postup Typea Version.