TrackingService.TryGetProfile(Type, TrackingProfile) Метод

Определение

Должен переопределяться в производном классе и при реализации должен требовать профиль отслеживания для указанного типа рабочего процесса, если таковой доступен.

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

Параметры

workflowType
Type

Тип Type рабочего процесса, для которого получается профиль отслеживания.

profile
TrackingProfile

При возврате этим методом, он содержит класс TrackingProfile для загрузки. Этот параметр передается неинициализированным.

Возвращаемое значение

Boolean

true, если класс TrackingProfile для указанного типа Type рабочего процесса доступен; в противном случае — false. Если объект имеет значение true, то класс TrackingProfile возвращается в параметре profile.

Примеры

В следующем примере кода демонстрируется реализация метода TryGetProfile, вызывающего частный метод GetProfile. Данный пример является частью примера SDK "Termination Tracking Service". Дополнительные сведения см. в примере службы отслеживания завершения.

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

Комментарии

Служба отслеживания отвечает за управление доступными профилями отслеживания, предназначенными для конкретных типов и экземпляров рабочих процессов. Такое управление можно реализовать любым удобным для разработчика способом. Например, можно вернуть один и тот же класс TrackingProfile для каждого типа Type рабочего процесса и экземпляра рабочего процесса; либо можно управлять сложным хранилищем профилей отслеживания, на которые ссылаются экземпляр рабочего процесса, Type рабочего процесса и класс Version.

Применяется к