Udostępnij za pośrednictwem


TrackingService.TryGetProfile(Type, TrackingProfile) Metoda

Definicja

Należy przesłonić w klasie pochodnej, a po zaimplementowaniu pobiera profil śledzenia dla określonego typu przepływu pracy, jeśli jest dostępny.

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

Parametry

workflowType
Type

Przepływ Type pracy, dla którego ma być pobierany profil śledzenia.

profile
TrackingProfile

Gdy ta metoda zwróci wartość , element zawiera element do załadowania TrackingProfile . Ten parametr jest przekazywany jako niezainicjowany.

Zwraca

Boolean

truejeśli dla TrackingProfile określonego przepływu pracy Type jest dostępny; w przeciwnym razie . false Jeśli trueparametr jest zwracany w elemecie TrackingProfile profile.

Przykłady

W poniższym przykładzie pokazano implementację TryGetProfile metody , która wywołuje metodę prywatną GetProfile . Ten przykład pochodzi z przykładowego zestawu SDK usługi Termination Tracking Service. Aby uzyskać więcej informacji, zobacz Przykład usługi śledzenia zakończenia.

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

Uwagi

Usługa śledzenia jest odpowiedzialna za zarządzanie profilami śledzenia dostępnymi dla określonych typów przepływów pracy i określonych wystąpień przepływu pracy. To zarządzanie można zaimplementować w dowolny sposób. Można na przykład zwrócić te same wartości TrackingProfile dla każdego wystąpienia przepływu pracy i przepływu pracy. Można też zarządzać zaawansowanym magazynem profilów śledzenia, do których odwołuje się wystąpienie przepływu pracy Type , przepływ pracy Typei Version.

Dotyczy