TrackingProfile Classe

Definizione

Attenzione

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Definisce i punti di interesse nel percorso di esecuzione potenziale di un'istanza del flusso di lavoro radice su cui un servizio di rilevamento deve ricevere notifica.

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
Ereditarietà
TrackingProfile
Attributi

Esempio

Nel seguente esempio di codice viene dimostrato come creare un oggetto TrackingProfile utilizzando il costruttore di TrackingProfile e come utilizzare le proprietà dell'oggetto per consentire di tenere traccia dell'esecuzione di un flusso di lavoro. Nel codice di esempio vengono utilizzate le proprietà ActivityTrackPoints, Version e WorkflowTrackPoints.

Questo esempio di codice fa parte dell'esempio SDK Query using SQLTrackingService nel file Program.cs. Per altre informazioni, vedere Esecuzione di query con 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

Commenti

Nota

In questo materiale vengono descritti tipi e spazi dei nomi obsoleti. Per altre informazioni, vedere Deprecated Types in Windows Workflow Foundation 4.5 (Tipi deprecati in Windows Workflow Foundation 4.5).

Durante il tempo di esecuzione, un'istanza del flusso di lavoro genera eventi di rilevamento nell'infrastruttura di rilevamento di runtime. L'infrastruttura di rilevamento di runtime utilizza un oggetto TrackingProfile per filtrare questi eventi di rilevamento e restituisce a un servizio di rilevamento i record di rilevamento in base all'applicazione del filtro. Esistono tre tipi di eventi di rilevamento che possono essere filtrati: eventi dello stato dell'attività, eventi dello stato del flusso di lavoro ed eventi utente. È possibile aggiungere ActivityTrackPoint oggetti alla ActivityTrackPoints proprietà in modo che corrispondano a eventi specifici dello stato dell'attività, WorkflowTrackPoint oggetti alla WorkflowTrackPoints proprietà in modo che corrispondano a eventi di stato del flusso di lavoro specifici e UserTrackPoint oggetti alla UserTrackPoints proprietà in modo che corrispondano a eventi utente specifici. Quando viene trovata una corrispondenza per un track point, l'infrastruttura di rilevamento di runtime restituisce al servizio di rilevamento i dati associati all'evento di rilevamento nell'oggetto TrackingChannel associato a tale servizio. I dati vengono restituiti in un oggetto ActivityTrackingRecord, in un oggetto WorkflowTrackingRecord o in un oggetto UserTrackingRecord, a seconda del tipo di track point per il quale è stata trovata corrispondenza.

Un servizio di rilevamento implementa i metodi nella classe TrackingService astratta per consentire alla funzionalità per l'infrastruttura di rilevamento di runtime di richiedere un oggetto TrackingChannel associato al servizio e un oggetto TrackingProfile associato a un'istanza del flusso di lavoro o a un tipo di flusso di lavoro specifici. Un servizio di rilevamento deve inoltre implementare la classe TrackingChannel astratta per fornire il canale sul quale l'infrastruttura di rilevamento di runtime può inviare i record di rilevamento.

Quando il servizio di rilevamento restituisce un oggetto del profilo di rilevamento al runtime, viene avviata l'esecuzione del flusso di lavoro e il profilo di rilevamento viene serializzato. Se la serializzazione del profilo di rilevamento non riesce, viene generata un'eccezione nell'istanza del flusso di lavoro. Se l'eccezione non viene gestita, l'istanza del flusso di lavoro viene terminata. Il profilo di rilevamento può essere convalidato prima di essere passato al runtime mediante la proprietà Schema.

Un oggetto TrackingProfile può essere serializzato in formato XML mediante l'oggetto TrackingProfileSerializerche formatta il formato XML in base alla proprietà Schema. Un questo modo viene fornito un formato comodo per l'archiviazione del profilo e per la creazione di un profilo non a livello di programmazione. Il servizio di rilevamento SQL, ad esempio, archivia le versioni serializzate dei profili di rilevamento analogamente a qualsiasi servizio di rilevamento creato in base alla classe SqlTrackingService.

Costruttori

TrackingProfile()
Obsoleti.

Inizializza una nuova istanza di TrackingProfile.

Proprietà

ActivityTrackPoints
Obsoleti.

Ottiene la raccolta di track point di attività utilizzata dall'infrastruttura di rilevamento di runtime per filtrare eventi dello stato dell'attività.

UserTrackPoints
Obsoleti.

Ottiene la raccolta di track point utente utilizzata dall'infrastruttura di rilevamento di runtime per filtrare eventi utente.

Version
Obsoleti.

Ottiene o imposta la versione del profilo di rilevamento.

WorkflowTrackPoints
Obsoleti.

Ottiene la raccolta di track point del flusso di lavoro utilizzata dall'infrastruttura di rilevamento di runtime per filtrare eventi dello stato del flusso di lavoro.

Metodi

Equals(Object)
Obsoleti.

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()
Obsoleti.

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()
Obsoleti.

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()
Obsoleti.

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()
Obsoleti.

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche