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