/1[], String, TraceLevel, String, String, Action<TraceRecord>, Func<Task<TResult>>, Action<TraceRecord, TResult>, Action<TraceRecord>)
Traces both a begin and an end trace around a specified operation.
Namespace: System.Web.Http.Tracing
Assembly: System.Web.Http (in System.Web.Http.dll)
Syntax
'Declaration
<ExtensionAttribute> _
Public Shared Function TraceBeginEndAsync(Of TResult) ( _
traceWriter As ITraceWriter, _
request As HttpRequestMessage, _
category As String, _
level As TraceLevel, _
operatorName As String, _
operationName As String, _
beginTrace As Action(Of TraceRecord), _
execute As Func(Of Task(Of TResult)), _
endTrace As Action(Of TraceRecord, TResult), _
errorTrace As Action(Of TraceRecord) _
) As Task(Of TResult)
'Usage
Dim traceWriter As ITraceWriter
Dim request As HttpRequestMessage
Dim category As String
Dim level As TraceLevel
Dim operatorName As String
Dim operationName As String
Dim beginTrace As Action(Of TraceRecord)
Dim execute As Func(Of Task(Of TResult))
Dim endTrace As Action(Of TraceRecord, TResult)
Dim errorTrace As Action(Of TraceRecord)
Dim returnValue As Task(Of TResult)
returnValue = traceWriter.TraceBeginEndAsync(request, _
category, level, operatorName, operationName, _
beginTrace, execute, endTrace, errorTrace)
public static Task<TResult> TraceBeginEndAsync<TResult>(
this ITraceWriter traceWriter,
HttpRequestMessage request,
string category,
TraceLevel level,
string operatorName,
string operationName,
Action<TraceRecord> beginTrace,
Func<Task<TResult>> execute,
Action<TraceRecord, TResult> endTrace,
Action<TraceRecord> errorTrace
)
[ExtensionAttribute]
public:
generic<typename TResult>
static Task<TResult>^ TraceBeginEndAsync(
ITraceWriter^ traceWriter,
HttpRequestMessage^ request,
String^ category,
TraceLevel level,
String^ operatorName,
String^ operationName,
Action<TraceRecord^>^ beginTrace,
Func<Task<TResult>^>^ execute,
Action<TraceRecord^, TResult>^ endTrace,
Action<TraceRecord^>^ errorTrace
)
static member TraceBeginEndAsync :
traceWriter:ITraceWriter *
request:HttpRequestMessage *
category:string *
level:TraceLevel *
operatorName:string *
operationName:string *
beginTrace:Action<TraceRecord> *
execute:Func<Task<'TResult>> *
endTrace:Action<TraceRecord, 'TResult> *
errorTrace:Action<TraceRecord> -> Task<'TResult>
JScript does not support generic types and methods.
Type Parameters
- TResult
The type of result produced by the Task.
Parameters
traceWriter
Type: System.Web.Http.Tracing.ITraceWriterThe ITraceWriter.
request
Type: HttpRequestMessageThe HttpRequestMessage with which to associate the trace. It may be null.
category
Type: System.StringThe logical category of the trace.
level
Type: System.Web.Http.Tracing.TraceLevelThe TraceLevel of the trace.
operatorName
Type: System.StringThe name of the object performing the operation. It may be null.
operationName
Type: System.StringThe name of the operation being performed. It may be null.
beginTrace
Type: System.Action<TraceRecord>The Action to invoke prior to performing the operation, allowing the given TraceRecord to be filled in. It may be null.
execute
Type: System.Func<Task<TResult>>An <see cref="T:System.Func`1" /> that returns the Task that will perform the operation.
endTrace
Type: System.Action<TraceRecord, TResult>The Action to invoke after successfully performing the operation, allowing the given TraceRecord to be filled in. The result of the completed task will also be passed to this action. This action may be null.
errorTrace
Type: System.Action<TraceRecord>The Action to invoke if an error was encountered performing the operation, allowing the given TraceRecord to be filled in. It may be null.
Return Value
Type: System.Threading.Tasks.Task<TResult>
The Task returned by the operation.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type ITraceWriter. When you use instance method syntax to call this method, omit the first parameter. For more information, see https://msdn.microsoft.com/en-us/library/bb384936(v=vs.108) or https://msdn.microsoft.com/en-us/library/bb383977(v=vs.108).
Remarks
The end trace will occur when the asynchronous operation completes, either success or failure.