// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Concurrent;
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Net.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Properties;
using System.Web.Http.Services;
namespace System.Web.Http.Tracing.Tracers
{
///
/// Tracer for
///
internal class HttpControllerDescriptorTracer : HttpControllerDescriptor, IDecorator
{
private const string CreateControllerMethodName = "CreateController";
private readonly HttpControllerDescriptor _innerDescriptor;
private readonly ITraceWriter _traceWriter;
public HttpControllerDescriptorTracer(HttpControllerDescriptor innerDescriptor, ITraceWriter traceWriter)
{
Contract.Assert(innerDescriptor != null);
Contract.Assert(traceWriter != null);
Configuration = innerDescriptor.Configuration;
ControllerName = innerDescriptor.ControllerName;
ControllerType = innerDescriptor.ControllerType;
_innerDescriptor = innerDescriptor;
_traceWriter = traceWriter;
}
public HttpControllerDescriptor Inner
{
get { return _innerDescriptor; }
}
public override ConcurrentDictionary