Partage via


TrackingService.TryGetProfile(Type, TrackingProfile) Méthode

Définition

Doit être substitué dans la classe dérivée et, en cas d'implémentation, récupère le modèle de suivi pour le type de workflow spécifié s'il y en a un 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

Paramètres

workflowType
Type

Type du workflow pour lequel obtenir le modèle de suivi.

profile
TrackingProfile

Cette méthode retourne le TrackingProfile à charger. Ce paramètre est passé sans être initialisé.

Retours

Boolean

true si un TrackingProfile pour le Type de workflow spécifié est disponible ; sinon, false. Si true, le TrackingProfile est retourné dans profile.

Exemples

L'exemple suivant illustre une implémentation de la méthode TryGetProfile, qui appelle une méthode GetProfile privée. Cet exemple provient de l'exemple du Kit de développement logiciel Termination Tracking Service (SDK). Pour plus d’informations, consultez l’exemple de service de suivi des interruptions.

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

Remarques

Un service de suivi est chargé de gérer les profils de suivi disponibles pour des types de workflow spécifiques et des instances de workflow spécifiques. Vous pouvez implémenter cette gestion comme bon vous semble. Par exemple, vous pouvez retourner le même TrackingProfile pour chaque Type de workflow et instance de workflow ; ou vous pouvez gérer un magasin de profils de suivi sophistiqué référencé par instance de workflow, Type de workflow et Version.

S’applique à