Compartilhar via


TrackingService.GetProfile Método

Definição

Deve ser substituído na classe derivada e, quando implementado, obtém o perfil de acompanhamento para uma instância de fluxo de trabalho ou o tipo de fluxo de trabalho especificado.

Sobrecargas

GetProfile(Guid)

Deve ser substituído na classe derivada e, quando implementado, retorna o perfil de acompanhamento para a instância de fluxo de trabalho especificada.

GetProfile(Type, Version)

Deve ser substituído na classe derivada e, quando implementado, retorna o perfil de acompanhamento, qualificado pela versão, para o Type do fluxo de trabalho especificado.

Comentários

Um serviço de acompanhamento é responsável por gerenciar os perfis de rastreamento disponíveis para tipos de fluxo de trabalho específicos e instâncias de fluxo de trabalho específicas. Você pode implementar esse gerenciamento da maneira que escolher. Por exemplo, você pode retornar o mesmo TrackingProfile para cada instância de fluxo Type de trabalho e fluxo de trabalho; ou você pode gerenciar um armazenamento sofisticado de perfis de rastreamento referenciados por instância de fluxo de trabalho, fluxo de Typetrabalho e Version.

GetProfile(Guid)

Deve ser substituído na classe derivada e, quando implementado, retorna o perfil de acompanhamento para a instância de fluxo de trabalho especificada.

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

Parâmetros

workflowInstanceId
Guid

O Guid da instância de fluxo de trabalho.

Retornos

O perfil de acompanhamento para a instância de fluxo de trabalho especificada.

Exemplos

O exemplo a seguir mostra uma implementação do GetProfile método . Neste exemplo, várias sobrecargas do GetProfile método chamam um único método privado GetProfile , que retorna um perfil de acompanhamento padrão codificado em código. Este exemplo é do exemplo do SDK do Serviço de Acompanhamento de Terminação. Para obter mais informações, consulte Exemplo de serviço de acompanhamento de terminação.

/// <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

Comentários

Um serviço de acompanhamento é responsável por gerenciar os perfis de rastreamento disponíveis para tipos de fluxo de trabalho específicos e instâncias de fluxo de trabalho específicas. Você pode implementar esse gerenciamento da maneira que escolher. Por exemplo, você pode retornar o mesmo TrackingProfile para cada instância de fluxo Type de trabalho e fluxo de trabalho; ou você pode gerenciar um armazenamento sofisticado de perfis de rastreamento referenciados por instância de fluxo de trabalho, fluxo de Typetrabalho e Version.

Aplica-se a

GetProfile(Type, Version)

Deve ser substituído na classe derivada e, quando implementado, retorna o perfil de acompanhamento, qualificado pela versão, para o Type do fluxo de trabalho especificado.

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

Parâmetros

workflowType
Type

O Type do fluxo de trabalho.

profileVersionId
Version

O Version de perfil de acompanhamento.

Retornos

O perfil de acompanhamento para o tipo de fluxo de trabalho especificado.

Comentários

Um serviço de acompanhamento é responsável por gerenciar os perfis de rastreamento disponíveis para tipos de fluxo de trabalho específicos e instâncias de fluxo de trabalho específicas. Você pode implementar esse gerenciamento da maneira que escolher. Por exemplo, você pode retornar o mesmo TrackingProfile para cada instância de fluxo Type de trabalho e fluxo de trabalho; ou você pode gerenciar um armazenamento sofisticado de perfis de rastreamento referenciados por instância de fluxo de trabalho, fluxo de Typetrabalho e Version.

Aplica-se a