TrackingService.GetProfile Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
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.