Freigeben über


TrackingService.TryGetProfile(Type, TrackingProfile) Methode

Definition

Muss in der abgeleiteten Klasse überschrieben werden und ruft bei der Implementierung das Verfolgungsprofil für den angegebenen Workflowtyp ab, sofern ein Typ verfügbar ist.

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

Parameter

workflowType
Type

Type des Workflows, für den das Verfolgungsprofil abgerufen werden soll.

profile
TrackingProfile

Diese Methode gibt das zu ladende TrackingProfile zurück. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true, wenn ein TrackingProfile für den angegebenen Workflow Type verfügbar ist, andernfalls false. Wenn true, wird das TrackingProfile in profile zurückgegeben.

Beispiele

Im folgenden Beispiel wird eine Implementierung der TryGetProfile-Methode veranschaulicht, die eine private GetProfile-Methode aufruft. Dieses Beispiel stammt aus dem Termination Tracking Service SDK-Beispiel. Weitere Informationen finden Sie unter Beispiel für den Beendigungsnachverfolgungsdienst.

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

Hinweise

Ein Überwachungsdienst übernimmt die Verwaltung der für bestimmte Workflowtypen und Workflowinstanzen verfügbaren Verfolgungsprofile. Sie können diese Verwaltung nach Bedarf beliebig implementieren. Sie können z. B. dasselbe TrackingProfile für jeden Workflow-Type und jede Workflowinstanz zurückgeben; oder Sie verwalten einen erweiterten Speicher mit Verfolgungsprofilen, auf die von der Workflowinstanz, dem Workflow-Type und Version verwiesen wird.

Gilt für: