public override IHttpController CreateController(HttpRequestMessage request) { IHttpController controller = null; _traceWriter.TraceBeginEnd( request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerDescriptor.GetType().Name, CreateControllerMethodName, beginTrace: null, execute: () => { controller = _innerDescriptor.CreateController(request); }, endTrace: (tr) => { tr.Message = controller == null ? SRResources.TraceNoneObjectMessage : HttpControllerTracer.ActualControllerType(controller).FullName; }, errorTrace: null); if (controller != null && !(controller is HttpControllerTracer)) { return(new HttpControllerTracer(request, controller, _traceWriter)); } return(controller); }
public override HttpControllerDescriptor SelectController(HttpRequestMessage request) { HttpControllerDescriptor controller = base.SelectController(request); var descriptor = new HttpControllerDescriptor(_configuration, GetControllerName(request), controller.ControllerType); return(DependencyResolver.Current.GetService(descriptor.GetType()) as HttpControllerDescriptor); }