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); } }
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); }
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); }