using System.Reflection; using System.Web.Http; using System.Web.Http.Dispatcher; using HH.AutoBom.Core; namespace HH.WMS.WebUI { public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( "ApiApiName", "api/{controller}/{action}/{id}", new { controller = "Magic", action = "Select", id = RouteParameter.Optional, namespaceName = new string[] { string.Format("HH.WMS.WebUI.Controllers") } } ); //将 ControllerSuffix 由默认的"Controller" 转换为 "ApiController" var suffix = typeof(DefaultHttpControllerSelector).GetField("ControllerSuffix", BindingFlags.Static | BindingFlags.Public); if (suffix != null) suffix.SetValue(null, "ApiController"); //支持命名空间 config.Services.Replace(typeof(IHttpControllerSelector), new NamespaceHttpControllerSelector(config)); config.ParameterBindingRules.Insert(0, param => { if (param.ParameterType == typeof(RequestWrapper)) return new RequestWrapperParameterBinding(param); return null; }); config.Filters.Add(new AuthorizeAttribute()); config.Filters.Add(new WebApiExceptionFilter()); config.Filters.Add(new WebApiDisposeFilter()); } } }