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); }
void IHttpControllerFactory.ReleaseController(HttpControllerContext controllerContext, IHttpController controller) { _traceWriter.TraceBeginEnd( controllerContext.Request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerFactory.GetType().Name, ReleaseControllerMethodName, beginTrace: (tr) => { tr.Message = HttpControllerTracer.ActualControllerType(controller).FullName; }, execute: () => { IHttpController actualController = HttpControllerTracer.ActualController(controller); _innerFactory.ReleaseController(controllerContext, actualController); }, endTrace: null, errorTrace: null); }
IHttpController IHttpControllerFactory.CreateController(HttpControllerContext controllerContext, string controllerName) { IHttpController controller = null; _traceWriter.TraceBeginEnd( controllerContext.Request, TraceCategories.ControllersCategory, TraceLevel.Info, _innerFactory.GetType().Name, CreateControllerMethodName, beginTrace: (tr) => { tr.Message = Error.Format( SRResources.TraceControllerNameAndRouteMessage, controllerName, FormattingUtilities.RouteToString(controllerContext.RouteData)); }, execute: () => { controller = _innerFactory.CreateController(controllerContext, controllerName); }, endTrace: (tr) => { tr.Message = controller == null ? SRResources.TraceNoneObjectMessage : HttpControllerTracer.ActualControllerType(controller).FullName; }, errorTrace: null); if (controller != null && !(controller is HttpControllerTracer)) { controller = new HttpControllerTracer(controller, _traceWriter); } return(controller); }