Condividi tramite


TrackingService.TryGetProfile(Type, TrackingProfile) Metodo

Definizione

Deve essere sottoposto a override nella classe derivata e, in caso di implementazione, recupera il profilo di rilevamento del flusso di lavoro specificato, se disponibile.

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

Parametri

workflowType
Type

Type di flusso di lavoro per il quale ottenere il profilo di rilevamento.

profile
TrackingProfile

Quando termina, questo metodo contiene l'elemento TrackingProfile da caricare. Questo parametro viene passato non inizializzato.

Restituisce

true se è disponibile un elemento TrackingProfile per il Type di flusso di lavoro specificato; in caso contrario false. Se true, l'elemento TrackingProfile verrà restituito in profile.

Esempio

Nell'esempio seguente viene illustrata un'implementazione del metodo TryGetProfile, che chiama un metodo GetProfile privato. Questo esempio è tratto dall'esempio SDK Termination Tracking Service. Per altre informazioni, vedere Esempio di servizio di rilevamento della terminazione.

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

Commenti

Un servizio di rilevamento è responsabile della gestione dei profili di rilevamento disponibili per tipi e istanze del flusso di lavoro specifici. Questa gestione può essere implementata nel modo desiderato. Ad esempio, è possibile restituire lo stesso TrackingProfile per ogni Type di flusso di lavoro e istanza del flusso di lavoro. In alternativa, è possibile gestire un complesso archivio di profili di rilevamento in base all'istanza del flusso di lavoro, nonché al Type e alla Version del flusso di lavoro.

Si applica a