zoukankan      html  css  js  c++  java
  • WebApi 全局使用filter

     先上代码:

        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
    
                config.Filters.Add(new ApiExceptionAttribute());
            }
        }
    

     WebAPi的全局过滤器不同于MVC,MVC需要在FilterConfig里面添加,WebApi必须在WebApiConfig里面设置

        public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
            }
        }
    

     WebApi异常处理过滤器:

        public class ApiExceptionAttribute : ExceptionFilterAttribute
        {
            /// <summary>
            /// 控制器方法中出现异常,会调用该方法捕获异常
            /// </summary>
            /// <param name="filterContext">提供使用</param>
            public override void OnException(HttpActionExecutedContext filterContext)
            {
                WriteLog(filterContext);
                string jsonResult = new { code = 1, message = filterContext.Exception.Message }.ToJson();
                HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(jsonResult, System.Text.Encoding.GetEncoding("UTF-8"), "application/json") };
                filterContext.Response = result;
                base.OnException(filterContext);
            }
        }
    
  • 相关阅读:
    spring-boot 访问时,加与不加项目名分析
    关于文章
    随笔
    工作小结五
    《文章翻译》PCA&SVD
    工作小结四
    工作小结三
    从零开始实现SSD目标检测(pytorch)(一)
    工作小结二
    《论文翻译》 GIOU
  • 原文地址:https://www.cnblogs.com/hycms/p/9671404.html
Copyright © 2011-2022 走看看