TrackingService.TryGetProfile(Type, TrackingProfile) Método

Definição

Deve ser substituído na classe derivada e, quando implementado, recupera o perfil de acompanhamento do tipo de fluxo de trabalho especificado, se houver um disponível.

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

O Type do fluxo de trabalho para o qual obter o perfil de acompanhamento.

profile
TrackingProfile

Quando este método é retornado, ele contém o TrackingProfile a carregar. Este parâmetro é passado não inicializado.

Retornos

true se um TrackingProfile do fluxo de trabalho especificado Type estiver disponível; caso contrário, false. Se true, o TrackingProfile será retornado no profile.

Exemplos

O exemplo a seguir demonstra uma implementação do TryGetProfile método , que chama um método privado GetProfile . 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.

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

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