TrackingService.GetProfile Método

Definición

Se debe invalidar en la clase derivada y, cuando se implementa, obtiene el perfil de seguimiento para una instancia de flujo de trabajo o un tipo de flujo de trabajo especificados.

Sobrecargas

GetProfile(Guid)

Se debe invalidar en la clase derivada y, cuando se implementa, devuelve el perfil de seguimiento para la instancia de flujo de trabajo especificada.

GetProfile(Type, Version)

Se debe invalidar en la clase derivada y, cuando se implementa, devuelve el perfil de seguimiento, calificado por versión, para el Type del flujo de trabajo especificado.

Comentarios

Un servicio de seguimiento se encarga de administrar los perfiles de seguimiento disponibles para tipos de flujo de trabajo concretos e instancias de flujo de trabajo específicas. Puede implementar esta administración de la manera que desee. Por ejemplo, puede devolver el mismo TrackingProfile para cada Type del flujo de trabajo e instancia de flujo de trabajo; o puede administrar un almacén sofisticado de perfiles de seguimiento a los que hace referencia la instancia de flujo de trabajo, el Type del flujo de trabajo y Version.

GetProfile(Guid)

Se debe invalidar en la clase derivada y, cuando se implementa, devuelve el perfil de seguimiento para la instancia de flujo de trabajo 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

Guid de la instancia de flujo de trabajo.

Devoluciones

El perfil de seguimiento para la instancia especificada de flujo de trabajo.

Ejemplos

En el siguiente ejemplo se muestra una implementación del método GetProfile. En este ejemplo, varias sobrecargas del método GetProfile llaman a un único método GetProfile privado, que devuelve un perfil de seguimiento predeterminado codificado de forma rígida. Este ejemplo pertenece al ejemplo SDK del servicio de seguimiento de finalización. Para obtener más información, consulte Ejemplo de servicio de seguimiento de terminación.

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

Comentarios

Un servicio de seguimiento se encarga de administrar los perfiles de seguimiento disponibles para tipos de flujo de trabajo concretos e instancias de flujo de trabajo específicas. Puede implementar esta administración de la manera que desee. Por ejemplo, puede devolver el mismo TrackingProfile para cada Type del flujo de trabajo e instancia de flujo de trabajo; o puede administrar un almacén sofisticado de perfiles de seguimiento a los que hace referencia la instancia de flujo de trabajo, el Type del flujo de trabajo y Version.

Se aplica a

GetProfile(Type, Version)

Se debe invalidar en la clase derivada y, cuando se implementa, devuelve el perfil de seguimiento, calificado por versión, para el Type del flujo de trabajo 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

Type del flujo de trabajo.

profileVersionId
Version

Version del perfil de seguimiento.

Devoluciones

El perfil de seguimiento para el tipo especificado de flujo de trabajo.

Comentarios

Un servicio de seguimiento se encarga de administrar los perfiles de seguimiento disponibles para tipos de flujo de trabajo concretos e instancias de flujo de trabajo específicas. Puede implementar esta administración de la manera que desee. Por ejemplo, puede devolver el mismo TrackingProfile para cada Type del flujo de trabajo e instancia de flujo de trabajo; o puede administrar un almacén sofisticado de perfiles de seguimiento a los que hace referencia la instancia de flujo de trabajo, el Type del flujo de trabajo y Version.

Se aplica a