Share via


TrackingChannel.Send(TrackingRecord) Metodo

Definizione

Quando viene implementato in una classe derivata, invia un oggetto TrackingRecord sulla classe 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)

Parametri

record
TrackingRecord

Oggetto TrackingRecord da inviare.

Esempio

Nell'esempio seguente viene illustrata un'implementazione del metodo Send. In questa implementazione i messaggi di rilevamento vengono scritti nel registro eventi al termine di un flusso di lavoro. Questo esempio è tratto dall'esempio SDK Termination Tracking Service. Per altre informazioni, vedere Esempio di servizio di rilevamento della terminazione.

/// <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

Commenti

L'infrastruttura di rilevamento di runtime chiama il metodo Send per recapitare un oggetto TrackingRecord sulla classe TrackingChannel quando trova una corrispondenza per a un track point in un oggetto TrackingProfile. È possibile trattare le informazioni di rilevamento inviate sulla classe TrackingChannel nel modo più consono ai requisiti dell'applicazione in uso.

Si applica a