Partilhar via


TrackingProfile Classe

Definição

Cuidado

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

Define pontos de interesse no caminho de execução potencial de uma instância de fluxo de trabalho raiz sobre os quais um serviço de controle deve ser notificado.

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
Herança
TrackingProfile
Atributos

Exemplos

O exemplo de código a seguir demonstra como você pode criar um TrackingProfile usando o TrackingProfile construtor e usar as propriedades do objeto para ajudar a acompanhar a execução de um fluxo de trabalho. O código de exemplo usa as ActivityTrackPointspropriedades , Versione WorkflowTrackPoints .

Este exemplo de código faz parte da consulta usando o exemplo do SDK do SQLTrackingService do arquivo Program.cs. Para obter mais informações, consulte Consulta usando 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

Comentários

Observação

Este material discute tipos e namespaces obsoletos. Para obter mais informações, consulte Deprecated Types in Windows Workflow Foundation 4.5 (Tipos preteridos no Windows Workflow Foundation 4.5).

Durante o tempo de execução, uma instância de fluxo de trabalho emite eventos de acompanhamento para a infraestrutura de acompanhamento de runtime. A infraestrutura de acompanhamento de runtime usa um TrackingProfile para filtrar esses eventos de rastreamento e retorna registros de acompanhamento com base nessa filtragem para um serviço de acompanhamento. Há três tipos de eventos de acompanhamento que podem ser filtrados: eventos de status de atividade, eventos de status de fluxo de trabalho e eventos de usuário. Você pode adicionar ActivityTrackPoint objetos à ActivityTrackPoints propriedade para corresponder a eventos de status de atividade específicos; WorkflowTrackPoint objetos à WorkflowTrackPoints propriedade para corresponder a eventos de status de fluxo de trabalho específicos; e UserTrackPoint objetos à UserTrackPoints propriedade para corresponder a eventos de usuário específicos. Quando um ponto de acompanhamento é correspondido, a infraestrutura de acompanhamento de runtime retorna os dados associados ao evento de rastreamento para o serviço de acompanhamento sobre o associado a TrackingChannel esse serviço. Os dados são retornados em um ActivityTrackingRecord, um WorkflowTrackingRecordou um UserTrackingRecord , dependendo do tipo de ponto de faixa que foi correspondido.

Um serviço de acompanhamento implementa os métodos na classe abstrata TrackingService para fornecer a funcionalidade para a infraestrutura de acompanhamento de runtime solicitar um TrackingChannel associado ao serviço e um TrackingProfile associado a uma instância de fluxo de trabalho específica ou a um tipo de fluxo de trabalho específico. Um serviço de acompanhamento também deve implementar a classe abstrata TrackingChannel para fornecer o canal sobre o qual a infraestrutura de acompanhamento de runtime pode enviar registros de rastreamento.

Quando o serviço de acompanhamento retorna um objeto de perfil de acompanhamento para o runtime, o fluxo de trabalho começa a ser executado e o perfil de acompanhamento é serializado. Se a serialização do perfil de acompanhamento falhar, uma exceção será gerada para a instância de fluxo de trabalho. Se a exceção não for tratada, a instância de fluxo de trabalho será encerrada. O perfil de acompanhamento pode ser validado antes de passá-lo para o runtime usando a Schema propriedade .

Um TrackingProfile pode ser serializado para XML usando o TrackingProfileSerializer, que formata o XML de acordo com o Schema. Isso fornece um formato conveniente para o armazenamento de perfil e para criar um perfil de maneira não programática. Por exemplo, o Serviço de Acompanhamento de SQL armazena versões serializadas de seus perfis de acompanhamento, assim como qualquer serviço de acompanhamento criado com base na SqlTrackingService classe .

Construtores

TrackingProfile()
Obsoleto.

Inicializa uma nova instância de TrackingProfile.

Propriedades

ActivityTrackPoints
Obsoleto.

Obtém a coleção de pontos de controle de atividade usado pela infraestrutura de controle de runtime para filtrar eventos de status de atividade.

UserTrackPoints
Obsoleto.

Obtém a coleção de pontos de controle de usuário usado pela infraestrutura de controle de runtime para filtrar eventos de usuário.

Version
Obsoleto.

Obtém ou define a versão do perfil de acompanhamento.

WorkflowTrackPoints
Obsoleto.

Obtém a coleção de pontos de controle de fluxo de trabalho usado pela infraestrutura de controle de runtime para filtrar eventos de status do fluxo de trabalho.

Métodos

Equals(Object)
Obsoleto.

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()
Obsoleto.

Serve como a função de hash padrão.

(Herdado de Object)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()
Obsoleto.

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também