/// <summary>
 /// Initializes a new instance of the <see cref="DefaultHttpControllerSelector"/> class.
 /// </summary>
 /// <param name="configuration">The configuration.</param>
 public AreaHttpControllerSelector(HttpConfiguration configuration)
     : base(configuration)
 {
     _controllerInfoCache = new Lazy <ConcurrentDictionary <AreaController, HttpControllerDescriptor> >(InitializeControllerInfoCache);
     _configuration       = configuration;
     _controllerTypeCache = new HttpControllerTypeCache(_configuration);
 }
        /// <summary>
        ///   Initializes a new instance of the <see cref="System.Web.Http.Dispatcher.DefaultHttpControllerSelector" /> class.
        /// </summary>
        /// <param name="configuration"> The configuration. </param>
        protected VersionedControllerSelector(HttpConfiguration configuration) {
            if (configuration == null) {
                throw new ArgumentNullException("configuration");
            }

            this._controllerInfoCache =
                    new Lazy<ConcurrentDictionary<ControllerIdentification, HttpControllerDescriptor>>(this.InitializeControllerInfoCache);
            this._configuration = configuration;
            this._controllerTypeCache = new HttpControllerTypeCache(this._configuration);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DefaultHttpControllerSelector"/> class.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        public NamespaceHttpControllerSelector(HttpConfiguration configuration) : base(configuration)
        {
            if (configuration == null)
            {
                //throw Error.ArgumentNull("configuration");
                throw new ArgumentNullException("configuration");
            }

            _controllerInfoCache = new Lazy <ConcurrentDictionary <string, HttpControllerDescriptor> >(InitializeControllerInfoCache);
            _configuration       = configuration;
            _controllerTypeCache = new HttpControllerTypeCache(_configuration);
        }
Пример #4
0
        private static IRouteEngine RegisterCommon(HttpConfiguration configuration, string qualifier, IRouteEngine engine = null)
        {
            if (engine == null)
            {
                engine = RouteEngineFactory.Create();
            }

            configuration.DependencyResolver = new SuperscribeDependencyAdapter(configuration.DependencyResolver, engine);
            configuration.MessageHandlers.Add(new SuperscribeHandler());

            var actionSelector     = configuration.Services.GetService(typeof(IHttpActionSelector)) as IHttpActionSelector;
            var controllerSelector = configuration.Services.GetService(typeof(IHttpControllerSelector)) as IHttpControllerSelector;
            var actionInvoker      = configuration.Services.GetService(typeof(IHttpActionInvoker)) as IHttpActionInvoker;

            configuration.Services.Replace(typeof(IHttpActionSelector), new SuperscribeActionSelectorAdapter(actionSelector));
            configuration.Services.Replace(typeof(IHttpControllerSelector), new SuperscribeControllerSelectorAdapter(controllerSelector));
            configuration.Services.Replace(typeof(IHttpActionInvoker), new SuperscribeActionInvokerAdapter(actionInvoker));

            ControllerTypeCache = new HttpControllerTypeCache(configuration);

            var template = "{*wildcard}";

            if (!string.IsNullOrEmpty(qualifier))
            {
                template = qualifier + "/" + template;
            }

            HttpConfiguration = configuration;

            // We need a single default route that will match everything
            // configuration.Routes.Clear();
            configuration.Routes.MapHttpRoute(
                name: "Superscribe",
                routeTemplate: template,
                defaults: new { });

            return(engine);
        }
Пример #5
0
        private static IRouteEngine RegisterCommon(HttpConfiguration configuration, string qualifier, IRouteEngine engine = null)
        {
            if (engine == null)
            {
                engine = RouteEngineFactory.Create();
            }

            configuration.DependencyResolver = new SuperscribeDependencyAdapter(configuration.DependencyResolver, engine);
            configuration.MessageHandlers.Add(new SuperscribeHandler());

            var actionSelector = configuration.Services.GetService(typeof(IHttpActionSelector)) as IHttpActionSelector;
            var controllerSelector = configuration.Services.GetService(typeof(IHttpControllerSelector)) as IHttpControllerSelector;
            var actionInvoker = configuration.Services.GetService(typeof(IHttpActionInvoker)) as IHttpActionInvoker;

            configuration.Services.Replace(typeof(IHttpActionSelector), new SuperscribeActionSelectorAdapter(actionSelector));
            configuration.Services.Replace(typeof(IHttpControllerSelector), new SuperscribeControllerSelectorAdapter(controllerSelector));
            configuration.Services.Replace(typeof(IHttpActionInvoker), new SuperscribeActionInvokerAdapter(actionInvoker));

            ControllerTypeCache = new HttpControllerTypeCache(configuration);

            var template = "{*wildcard}";
            if (!string.IsNullOrEmpty(qualifier))
            {
                template = qualifier + "/" + template;
            }

            HttpConfiguration = configuration;

            // We need a single default route that will match everything
            // configuration.Routes.Clear();
            configuration.Routes.MapHttpRoute(
                name: "Superscribe",
                routeTemplate: template,
                defaults: new { });

            return engine;
        }
        /// <summary>
        ///   Initializes a new instance of the <see cref="System.Web.Http.Dispatcher.DefaultHttpControllerSelector" /> class.
        /// </summary>
        /// <param name="configuration"> The configuration. </param>
        /// <param name="defaultVersion">The version to default to if no version is present in accept header.</param>
        protected VersionedControllerSelector(HttpConfiguration configuration, string defaultVersion)
        {
            this._configuration = GetConfigurationOrThrowNullArgumentException(configuration);
            this._controllerTypeCache = new HttpControllerTypeCache(this._configuration);
            this._defaultVersion = defaultVersion;

            this._controllerInfoCache =
                    new Lazy<ConcurrentDictionary<ControllerIdentification, HttpControllerDescriptor>>(this.InitializeControllerInfoCache);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="HyperHttpControllerSelector" /> class.
 /// </summary>
 /// <param name="configuration">The configuration.</param>
 public HyperHttpControllerSelector(HttpConfiguration configuration)
 {
     _configuration = configuration;
     _controllerTypeCache = new HttpControllerTypeCache(_configuration);
     _controllerInfoCache = new Lazy<ConcurrentDictionary<string, HttpControllerDescriptor>>(InitializeControllerInfoCache);
 }