TrackingChannel.Send(TrackingRecord) 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.
Quando implementado em uma classe derivada, envia um TrackingRecord sobre o TrackingChannel.
protected public:
abstract void Send(System::Workflow::Runtime::Tracking::TrackingRecord ^ record);
protected internal abstract void Send (System.Workflow.Runtime.Tracking.TrackingRecord record);
abstract member Send : System.Workflow.Runtime.Tracking.TrackingRecord -> unit
Protected Friend MustOverride Sub Send (record As TrackingRecord)
Parâmetros
- record
- TrackingRecord
O TrackingRecord a ser enviado.
Exemplos
O exemplo a seguir demonstra uma implementação do método Send. Nesta implementação, as mensagens de acompanhamento são gravadas no log de eventos quando um fluxo de trabalho é encerrado. Este exemplo é do exemplo do SDK do Serviço de Acompanhamento de Terminação. Para obter mais informações, consulte Exemplo do Serviço de Acompanhamento de Terminação.
/// <summary>
/// Receives tracking events. Instance terminated events are written to the event log.
/// </summary>
protected override void Send(TrackingRecord record)
{
WorkflowTrackingRecord instanceTrackingRecord = record as WorkflowTrackingRecord;
if ((null == instanceTrackingRecord) || (TrackingWorkflowEvent.Terminated != instanceTrackingRecord.TrackingWorkflowEvent))
return;
// Create an EventLog instance and assign its source.
EventLog log = new EventLog();
log.Source = sourceValue;
// Write an informational entry to the event log.
TrackingWorkflowTerminatedEventArgs terminatedEventArgs = instanceTrackingRecord.EventArgs as TrackingWorkflowTerminatedEventArgs;
StringBuilder message = new StringBuilder(512);
message.AppendLine(string.Format(System.Globalization.CultureInfo.InvariantCulture, "Workflow instance {0} has been terminated.", parametersValue.InstanceId.ToString()));
message.AppendLine();
if (null != terminatedEventArgs.Exception)
message.AppendLine(terminatedEventArgs.Exception.ToString());
log.WriteEntry(message.ToString(), EventLogEntryType.Warning);
}
'/ <summary>
'/ Receives tracking events. Instance terminated events are written to the event log.
'/ </summary>
Protected Overrides Sub Send(ByVal record As TrackingRecord)
Dim instanceTrackingRecord As WorkflowTrackingRecord = CType(record, WorkflowTrackingRecord)
If instanceTrackingRecord Is Nothing Or Not TrackingWorkflowEvent.Terminated = instanceTrackingRecord.TrackingWorkflowEvent Then
Return
End If
' Create an EventLog instance and assign its source.
Dim log As New EventLog()
log.Source = sourceValue
' Write an informational entry to the event log.
Dim terminatedEventArgs As TrackingWorkflowTerminatedEventArgs = CType(instanceTrackingRecord.EventArgs, TrackingWorkflowTerminatedEventArgs)
Dim Message As New StringBuilder(512)
Message.AppendLine(String.Format(System.Globalization.CultureInfo.InvariantCulture, "Workflow instance 0} has been terminated.", parametersValue.InstanceId.ToString()))
Message.AppendLine()
If terminatedEventArgs.Exception Is Nothing Then
Message.AppendLine(terminatedEventArgs.Exception.ToString())
End If
log.WriteEntry(Message.ToString(), EventLogEntryType.Warning)
End Sub
Comentários
A infraestrutura de acompanhamento de runtime é chamada Send para fornecer uma TrackingRecord no momento em que corresponde a TrackingChannel um ponto de controle em um TrackingProfile. Você pode tratar as informações de acompanhamento enviadas de TrackingChannel qualquer maneira que os requisitos do aplicativo ditarem.