Inheritance: System.Web.Http.Dispatcher.DefaultHttpControllerTypeResolver
Esempio n. 1
0
        private void ApplyDefaultConfiguration(HttpConfiguration config,
                                               IEnumerable <Type> controllerTypes)
        {
            Contract.Requires(controllerTypes != null);
            Contract.Requires(ControllerResolver.AllAssignableToIHttpController(controllerTypes));

            config.Services.Replace(typeof(IHttpControllerTypeResolver), new ControllerResolver(controllerTypes.ToList()));

            config.Routes.Clear();
            config.Routes.MapHttpRoute(name: "DefaultApi",
                                       routeTemplate: "api/{controller}/{id}",
                                       defaults: new { id = RouteParameter.Optional }
                                       );

            if (_useJsonOnly)
            {
                var json = config.Formatters.JsonFormatter;
                config.Formatters.Clear();
                config.Formatters.Add(json);
            }
            else if (_theFormatter != null)
            {
                config.Formatters.Clear();
                config.Formatters.Add(_theFormatter);
            }
        }
Esempio n. 2
0
        public IEnumerable <Type> GetControllerTypes(Assembly[] assemblies)
        {
            IEnumerable <Assembly> controllerAssemblies =
                new List <Assembly>(AppDomain.CurrentDomain.GetAssemblies()).Union(assemblies);

            Type[]      types           = controllerAssemblies.SelectMany(a => a.GetTypes()).ToArray();
            List <Type> controllerTypes = ControllerResolver.WhereControllerType(types).ToList();

            return(controllerTypes);
        }
Esempio n. 3
0
        public IEnumerable <Type> GetControllerTypes()
        {
            var types = GetLoadedTypes();
            var tempControllerTypes = ControllerResolver.WhereControllerType(types).ToList();
            var controllerTypes     = tempControllerTypes.Where(t => t.Assembly.FullName.Substring(0, 1) != RoslynAssemblyNameCharacter).ToList();
            var roslynTypes         = tempControllerTypes.Where(t => t.Assembly.FullName.StartsWith(RoslynAssemblyNameCharacter));

            controllerTypes.Add(roslynTypes.Last());
            foreach (var controller in controllerTypes)
            {
                _logger.Debug(string.Format("ScriptCs.WebApi - Found controller: {0}", controller.FullName));
            }
            return(controllerTypes);
        }