TrackingService.TryGetProfile(Type, TrackingProfile) Método

Definición

Se debe invalidar en la clase derivada y, cuando se implementa, recupera el perfil de seguimiento para el tipo de flujo de trabajo especificado, si hay uno disponible.

protected public:
 abstract bool TryGetProfile(Type ^ workflowType, [Runtime::InteropServices::Out] System::Workflow::Runtime::Tracking::TrackingProfile ^ % profile);
protected internal abstract bool TryGetProfile (Type workflowType, out System.Workflow.Runtime.Tracking.TrackingProfile profile);
abstract member TryGetProfile : Type * TrackingProfile -> bool
Protected Friend MustOverride Function TryGetProfile (workflowType As Type, ByRef profile As TrackingProfile) As Boolean

Parámetros

workflowType
Type

Type del flujo de trabajo para el que se debe obtener el perfil de seguimiento.

profile
TrackingProfile

Cuando este método devuelve datos, contiene el TrackingProfile que se debe cargar. Este parámetro se pasa sin inicializar.

Devoluciones

Boolean

Es true si TrackingProfile para el Type del flujo de trabajo especificado está disponible; de lo contrario, es false. Si es true, se devolverá el TrackingProfile en profile.

Ejemplos

El ejemplo siguiente muestra una implementación del método TryGetProfile, que llama a un método GetProfile privado. 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.

class OrderServiceImpl : IOrderService
{
    string orderId;
    public WorkflowInstance instanceId;

    // Called by the workflow to pass an order id
    public void CreateOrder(string Id)
    {
        Console.WriteLine("\nPurchase Order Created in System");
        orderId = Id;
    }

    // Called by the host to approve an order
    public void ApproveOrder()
    {
        EventHandler<OrderEventArgs> orderApproved = this.OrderApproved;
        if (orderApproved != null)
            orderApproved(null, new OrderEventArgs(instanceId.InstanceId, orderId));
    }

    // Called by the host to reject an order
    public void RejectOrder()
    {
        EventHandler<OrderEventArgs> orderRejected = this.OrderRejected;
        if (orderRejected != null)
            orderRejected(null, new OrderEventArgs(instanceId.InstanceId, orderId));
    }

    // Events that handled within a workflow by HandleExternalEventActivity activities
    public event EventHandler<OrderEventArgs> OrderApproved;
    public event EventHandler<OrderEventArgs> OrderRejected;
}
Class OrderServiceImpl
    Implements IOrderService

    Dim orderId As String
    Public instanceId As WorkflowInstance

    ' Called by the workflow to pass an order id
    Public Sub CreateOrder(ByVal Id As String)

        Console.WriteLine("\nPurchase Order Created in System")
        orderId = Id
    End Sub

    ' Called by the host to approve an order
    Public Sub ApproveOrder()
        RaiseEvent OrderApproved(Nothing, New OrderEventArgs(instanceId.InstanceId, orderId))
    End Sub

    ' Called by the host to reject an order
    Public Sub RejectOrder()
        RaiseEvent OrderRejected(Nothing, New OrderEventArgs(instanceId.InstanceId, orderId))
    End Sub

    ' Events that handled within a workflow by HandleExternalEventActivity activities
    Public Event OrderApproved(ByVal sender As Object, ByVal e As OrderEventArgs) Implements IOrderService.OrderApproved
    Public Event OrderRejected(ByVal sender As Object, ByVal e As OrderEventArgs) Implements IOrderService.OrderRejected
End Class

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