Beispiel #1
0
        private static void CreateControllerFactoryTracer(HttpConfiguration configuration, ITraceWriter traceWriter)
        {
            IHttpControllerFactory      factory = configuration.ServiceResolver.GetService(typeof(IHttpControllerFactory)) as IHttpControllerFactory;
            HttpControllerFactoryTracer tracer  = new HttpControllerFactoryTracer(factory, traceWriter);

            configuration.ServiceResolver.SetService(typeof(IHttpControllerFactory), tracer);
        }
        private Collection <ApiDescription> InitializeApiDescriptions()
        {
            Collection <ApiDescription> apiDescriptions   = new Collection <ApiDescription>();
            IHttpControllerFactory      controllerFactory = _config.ServiceResolver.GetHttpControllerFactory();
            IDictionary <string, HttpControllerDescriptor> controllerMappings = controllerFactory.GetControllerMapping();

            if (controllerMappings != null)
            {
                foreach (var route in _config.Routes)
                {
                    ExploreRouteControllers(controllerMappings, route, apiDescriptions);
                }

                // remove ApiDescription that will lead to ambiguous action matching. E.g. a controller with Post() and PostComment(). When the route template is {controller}, it produces POST /controller and POST /controller.
                apiDescriptions = RemoveInvalidApiDescriptions(apiDescriptions);
            }

            return(apiDescriptions);
        }
 public HttpControllerFactoryTracer(IHttpControllerFactory innerFactory, ITraceWriter traceWriter)
 {
     _innerFactory = innerFactory;
     _traceWriter = traceWriter;
 }
 public ParentChildControllerFactory(IHttpControllerFactory innerFactory)
 {
     _innerFactory = innerFactory;
 }
 public HttpControllerFactoryTracer(IHttpControllerFactory innerFactory, ITraceWriter traceWriter)
 {
     _innerFactory = innerFactory;
     _traceWriter  = traceWriter;
 }