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
Параметры
- profile
- TrackingProfile
При возврате этим методом, он содержит класс TrackingProfile для загрузки. Этот параметр передается неинициализированным.
Возвращаемое значение
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.