TrackingService.TryGetProfile(Type, TrackingProfile) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Deve essere sottoposto a override nella classe derivata e, in caso di implementazione, recupera il profilo di rilevamento del flusso di lavoro specificato, se disponibile.
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
Parametri
- profile
- TrackingProfile
Quando termina, questo metodo contiene l'elemento TrackingProfile da caricare. Questo parametro viene passato non inizializzato.
Restituisce
true
se è disponibile un elemento TrackingProfile per il Type di flusso di lavoro specificato; in caso contrario false
. Se true
, l'elemento TrackingProfile verrà restituito in profile
.
Esempio
Nell'esempio seguente viene illustrata un'implementazione del metodo TryGetProfile
, che chiama un metodo GetProfile
privato. Questo esempio è tratto dall'esempio SDK Termination Tracking Service. Per altre informazioni, vedere Esempio di servizio di rilevamento della terminazione.
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
Commenti
Un servizio di rilevamento è responsabile della gestione dei profili di rilevamento disponibili per tipi e istanze del flusso di lavoro specifici. Questa gestione può essere implementata nel modo desiderato. Ad esempio, è possibile restituire lo stesso TrackingProfile per ogni Type di flusso di lavoro e istanza del flusso di lavoro. In alternativa, è possibile gestire un complesso archivio di profili di rilevamento in base all'istanza del flusso di lavoro, nonché al Type e alla Version del flusso di lavoro.