public static ActualMediaTypeFormatter ( System.Net.Http.Formatting.MediaTypeFormatter formatter ) : System.Net.Http.Formatting.MediaTypeFormatter | ||
formatter | System.Net.Http.Formatting.MediaTypeFormatter | |
return | System.Net.Http.Formatting.MediaTypeFormatter |
public override MediaTypeFormatter GetPerRequestFormatterInstance( Type type, HttpRequestMessage request, MediaTypeHeaderValue mediaType ) { MediaTypeFormatter formatter = null; TraceWriter.TraceBeginEnd( request, TraceCategories.FormattingCategory, TraceLevel.Info, InnerFormatter.GetType().Name, GetPerRequestFormatterInstanceMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceGetPerRequestFormatterMessage, InnerFormatter.GetType().Name, type.Name, mediaType ); }, execute: () => { formatter = InnerFormatter.GetPerRequestFormatterInstance( type, request, mediaType ); }, endTrace: (tr) => { if (formatter == null) { tr.Message = SRResources.TraceGetPerRequestNullFormatterEndMessage; } else { string formatMessage = Object.ReferenceEquals( MediaTypeFormatterTracer.ActualMediaTypeFormatter(formatter), InnerFormatter ) ? SRResources.TraceGetPerRequestFormatterEndMessage : SRResources.TraceGetPerRequestFormatterEndMessageNew; tr.Message = Error.Format(formatMessage, formatter.GetType().Name); } }, errorTrace: null ); if (formatter != null && !(formatter is IFormatterTracer)) { formatter = MediaTypeFormatterTracer.CreateTracer(formatter, TraceWriter, request); } return(formatter); }
public ContentNegotiationResult Negotiate( Type type, HttpRequestMessage request, IEnumerable <MediaTypeFormatter> formatters ) { ContentNegotiationResult result = null; _traceWriter.TraceBeginEnd( request, TraceCategories.FormattingCategory, TraceLevel.Info, _innerNegotiator.GetType().Name, NegotiateMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceNegotiateFormatter, type.Name, FormattingUtilities.FormattersToString(formatters) ); }, execute: () => { result = _innerNegotiator.Negotiate(type, request, formatters); }, endTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceSelectedFormatter, result == null ? SRResources.TraceNoneObjectMessage : MediaTypeFormatterTracer .ActualMediaTypeFormatter(result.Formatter) .GetType().Name, result == null || result.MediaType == null ? SRResources.TraceNoneObjectMessage : result.MediaType.ToString() ); }, errorTrace: null ); if (result != null) { result.Formatter = MediaTypeFormatterTracer.CreateTracer( result.Formatter, _traceWriter, request ); } return(result); }