예제 #1
0
        public void CreateServer()
        {
            var types           = GetLoadedTypes();
            var controllerTypes = ControllerResolver.WhereControllerType(types).ToList();

            CreateServer(new HttpConfiguration(), controllerTypes);
        }
예제 #2
0
        public void CreateServer(HttpConfiguration config, params Assembly[] assemblies)
        {
            var controllerAssemblies = new List <Assembly>(AppDomain.CurrentDomain.GetAssemblies()).Union(assemblies);
            var types           = controllerAssemblies.SelectMany(a => a.GetTypes()).ToArray();
            var controllerTypes = ControllerResolver.WhereControllerType(types).ToList();

            CreateServer(config, controllerTypes);
        }
예제 #3
0
        public void CreateServer(HttpConfiguration config, ICollection <Type> controllerTypes)
        {
            Contract.Requires(controllerTypes != null);
            Contract.Requires(ControllerResolver.AllAssignableToIHttpController(controllerTypes));

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

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

            Configuration = config;
        }