次の方法で共有


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 を格納します。 このパラメーターは初期化せずに渡されます。

戻り値

指定したワークフロー trueTrackingProfile が存在する場合は Type。それ以外の場合は falsetrue の場合、TrackingProfileprofile で返されます。

プライベート TryGetProfile メソッドを呼び出す GetProfile メソッドを実装する方法の例を次に示します。 この例は、終了追跡サービスの SDK サンプルです。 詳細については、「 終了追跡サービスのサンプル」を参照してください。

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 によって参照される追跡プロファイルの保存場所を管理することもできます。

適用対象