TrackingService.TryGetProfile(Type, TrackingProfile) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Deve ser substituído na classe derivada e, quando implementado, recupera o perfil de acompanhamento do tipo de fluxo de trabalho especificado, se houver um disponível.
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
Parâmetros
- profile
- TrackingProfile
Quando este método é retornado, ele contém o TrackingProfile a carregar. Este parâmetro é passado não inicializado.
Retornos
true
se um TrackingProfile do fluxo de trabalho especificado Type estiver disponível; caso contrário, false
. Se true
, o TrackingProfile será retornado no profile
.
Exemplos
O exemplo a seguir demonstra uma implementação do TryGetProfile
método , que chama um método privado GetProfile
. Este exemplo é do exemplo do SDK do Serviço de Acompanhamento de Terminação. Para obter mais informações, consulte Exemplo de serviço de acompanhamento de terminação.
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
Comentários
Um serviço de acompanhamento é responsável por gerenciar os perfis de rastreamento disponíveis para tipos de fluxo de trabalho específicos e instâncias de fluxo de trabalho específicas. Você pode implementar esse gerenciamento da maneira que escolher. Por exemplo, você pode retornar o mesmo TrackingProfile para cada instância de fluxo Type de trabalho e fluxo de trabalho; ou você pode gerenciar um armazenamento sofisticado de perfis de rastreamento referenciados por instância de fluxo de trabalho, fluxo de Typetrabalho e Version.