过滤器

  • 目录
  • 消息拦截器——全局只要按照路由访问的接口都可以拦截
  • 过滤器——在项目中全局AOP实现过滤器
  • 异常过滤——在项目中全局AOP实现过滤器

消息拦截器——全局只要按照路由访问的接口都可以拦截

    /// <summary>  
    /// HTTP消息拦截器  
    /// </summary>  
    public class RequestHandler : DelegatingHandler
    {
        /// <summary>  
        /// 拦截请求  
        /// </summary>  
        /// <param name="request">请求</param>  
        /// <param name="cancellationToken">用于发送取消操作信号</param>  
        /// <returns></returns>  
        protected async override Task<HttpResponseMessage> SendAsync(
        HttpRequestMessage request, CancellationToken cancellationToken)
        {
            //获取URL参数  
            NameValueCollection query = HttpUtility.ParseQueryString(request.RequestUri.Query);
            //获取Post正文数据,比如json文本  
            string fRequesContent = request.Content.ReadAsStringAsync().Result;

            //可以做一些其他安全验证工作,比如Token验证,签名验证。  
            //可以在需要时自定义HTTP响应消息  
            //return SendError("自定义的HTTP响应消息", HttpStatusCode.OK);  

            //请求处理耗时跟踪  
            Stopwatch sw = new Stopwatch();
            sw.Start();
            //调用内部处理接口,并获取HTTP响应消息  
            HttpResponseMessage response = await base.SendAsync(request, cancellationToken);
            //篡改HTTP响应消息正文  
            response.Content = new StringContent(response.Content.ReadAsStringAsync().Result.Replace(@"\\", @"\"));
            if (!response.IsSuccessStatusCode)
            {
                using (var httpClient = new HttpClient())
                {
                    //response = await httpClient.PostAsync("http://www.subaotech.com:8002/api/TestTengFei/GetUrlData", request.RequestUri.AbsolutePath.Split('?')[0], new System.Net.Http.Formatting.JsonMediaTypeFormatter());
                    response = await httpClient.PostAsync("http://localhost:63107/api/TestTengFei/GetUrlData", request.RequestUri.AbsolutePath.Split('?')[0], new System.Net.Http.Formatting.JsonMediaTypeFormatter());
                    sw.Stop();
                    return response;
                }//http://www.subaotech.com:8002/api/TestTengFei/GetUrlData
                //request.RequestUri = new Uri("http://localhost:63107/api/TestTengFei/GetUrlData");
                //HttpResponseMessage response1 = await base.SendAsync(request, cancellationToken);
                //var controller = new Controllers.TestTengFeiController();
                //response1.Content = new StringContent(response1.Content.ReadAsStringAsync().Result.Replace(@"\\", @"\"));
                //response.Content =new StringContent(new Controllers.TestTengFeiController().GetUrlData());
            }
            //var s = response.Content.ReadAsAsync<string>().Result;
            sw.Stop();
            //记录处理耗时  
            long exeMs = sw.ElapsedMilliseconds;
            return response;
        }

        /// <summary>  
        /// 构造自定义HTTP响应消息  
        /// </summary>  
        /// <param name="error"></param>  
        /// <param name="code"></param>  
        /// <returns></returns>  
        private HttpResponseMessage SendError(string error, System.Net.HttpStatusCode code)
        {
            var response = new HttpResponseMessage();
            response.Content = new StringContent(error);
            response.StatusCode = code;
            return response;
        }
}

过滤器——在项目中全局AOP实现过滤器

    /// <summary>
    /// 过滤器
    /// </summary>
    public class ControllerFiltertAttributeConfig : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            base.OnActionExecuting(actionContext);
        }

        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            base.OnActionExecuted(actionExecutedContext);
            //HttpContext.Current.Response.Write("{\"id\":1,\"name\":\"小明\"}");
            创建响应对象,初始化为成功,没有指定的话本次请求将不会被拦截
            //actionExecutedContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
        }
    }

异常过滤——在项目中全局AOP实现过滤器

    /// <summary>
    /// 异常处理
    /// </summary>
    public class ControllerExceptionAttributeConfig : ExceptionFilterAttribute
    {
        public override void OnException(HttpActionExecutedContext actionExecutedContext)
        {
            var message = actionExecutedContext.Exception.Message.ToString();
            message += "\r\n【请求接口】" + actionExecutedContext.ActionContext.Request.RequestUri.ToString();
            message += "\r\n【请求参数】" + JsonConvert.SerializeObject(actionExecutedContext.ActionContext.ActionArguments);
            LogRecord.WriterErrorLog(message);
            //throw new Exception(actionExecutedContext.Exception.Message);
        }
    }
SolidWorks命令快捷键一览 动作 组合键 模型视图 旋转模型: ? 水平或竖直 方向键 ? 水平或竖直 90 度 Shift+方向键 ? 顺时针或逆时针 Alt+左或右方向键 平移模型 Ctrl+方向键 放大 Z 缩小 z 整屏显示全图 f 上一视图 Ctrl+Shift+Z 视图定向 视图定向菜单 空格键 前视 Ctrl+1 后视 Ctrl+2 左视 Ctrl+3 右视 Ctrl+4 上视 Ctrl+5 下视 Ctrl+6 等轴测 Ctrl+7 选择过滤器 过滤边线 e 过滤顶点 v 过滤面 x 切换选择过滤器工具栏 F5 切换选择过滤器(开/关) F6 文件菜单项目 新建 SolidWorks 文件 Ctrl+N 打开文件 Ctrl+O 从 WEB 文件夹打开 Ctrl+W 保存 Ctrl+S 打印 Ctrl+P 额外快捷键 在 PropertyManager 或对话框中访问在线帮助 F1 在 FeatureManager 设计树中重新命名一项目(对大部分项目适用) F2 重建模型 Ctrl+B 强使重建模型及重建其所有特征 Ctrl+Q 重绘屏幕 Ctrl+R 在打开的 SolidWorks 文件之间循环 Ctrl+Tab 直线到圆弧/圆弧到直线(草图绘制模式) A 撤消 Ctrl+Z 剪切 Ctrl+X 复制 Ctrl+C 粘贴 Ctrl+V 删除 Delete 下一窗口 Ctrl+F6 关闭窗口 Ctrl+F4 旋转模型:水平或竖直:方向键;水平或竖直 90 度:Shift+方向键;顺时针或逆时针:Alt+左或右方向键 平移模型:Ctrl+方向键 放大:Z 缩小:z 整屏显示全图:f 上一视图:Ctrl+Shift+Z -------------------------------------------------------------------------------- 视图定向菜单:空格键 前视:Ctrl+1 后视:Ctrl+2 左视:Ctrl+3 右视:Ctrl+4 上视:Ctrl+5 下视:Ctrl+6 等轴测:Ctrl+7 正视于:Ctrl+8 -------------------------------------------------------------------------------- 过滤边线:e 过滤顶点:v 过滤面:x 切换选择过滤器工具栏:F5 切换选择过滤器(开关):F6 -------------------------------------------------------------------------------- 新建文件:Ctrl+N 打开文件:Ctrl+O 从 WEB 文件夹打开:Ctrl+W 从零件制作工程图:Ctrl+D 从零件制作装配体:Ctrl+A 保存:Ctrl+S 打印:Ctrl+P -------------------------------------------------------------------------------- 重复上一命令:Enter 在 PropertyManager 或对话框中访问在线帮助:F1 在 FeatureManager 设计树中重新命名一项目(对大部分项目适用):F2 展开或折叠 FeatureManager设计树:c 重建模型:Ctrl+B 强使重建模型及重建其所有特征:Ctrl+Q 重绘屏幕:Ctrl+R 在打开的 SolidWorks 文件之间循环:Ctrl+Tab 直线到圆弧圆弧到直线(草图绘制模式):a 撤消:Ctrl+z 剪切:Ctrl+x 复制:Ctrl+c 粘贴:Ctrl+v 删除:Delete 下一窗口:Ctrl+F6 关闭窗口:Ctrl+F4 后视 CTRL 2 重建模型 CTRL B 底视 CTRL 6 Redraw CTRL R 复制 CTRL C 右视 CTRL 4 剪切 CTRL X 保存 CTRL S 删除 Delete 选择边 E Forced Rebuild CTRL Q 3 选择面 X 前视 CTRL 1 选择顶视 V 帮助 Shift F1F1 打开关闭选择过滤器 F5 (Toolbar) 左视 CTRL 3 切换选择过滤器 F6 顶视 CTRL 5 新建 CTRL N Undo CTRL Z 打开 CTRL O 视图对话框 SpaceBar 粘贴 CTRL V 放大 Shift Z 前一视图 CTRL Shift Z 缩小 Z 打印 CTRL P 缩放到屏幕 F 上下二等角轴测 CTRL 7 新建 Ctrl+N 打开 Ctrl+O 关闭 Ctrl+W 保存 Ctrl+S 打印 Ctrl+P 浏览最近文档 R 撤销 Ctrl+Z 恢复 Ctrl+Y 重复上一命令 Enter 剪切 Ctrl+X 复制 Ctrl+C 粘贴 Ctrl+V 删除 Delete 重建模型 Ctrl+B 重画 Ctrl+R 视图定向 SpaceBar 整屏显示全图 F 快速捕捉 F3 全屏 F11 特征管理员区域 F9 工具栏 F10 任务窗格 Ctrl+F1 直线 L 直线圆弧切换 A 扩展折叠数 C 折叠所有项目 Shift+C 过滤边线 E 查找替换 Ctrl+F 下一边线 N Force Regen Ctrl+Q 快捷栏 S 过滤顶点 V 切换选择过滤器工具栏 F5 切换选择过滤器 F6 拼写检验程序 F7 过滤面 X 接受边线 Y 缩小 Z 放大 Shift+Z 上一视图 Ctrl+Shift+Z 滚轮的快捷键: 如果使用三键鼠标,您可以动态使用以下查看命令: 平移 - 按住 Ctrl 键并使用鼠标中间按键来拖动。(在激活的工程图中,不需按住 Ctrl 键。) 旋转零件或装配体 – 使用鼠标中间按键来拖动。 缩放所有类型的文件 - 按住 Shift 键并使用鼠标中间按键来拖动。 另外常用: 撤消 Ctrl+Z, 重做 Ctrl+Y(即反撤销,不是在每个情况下都可以,自己试一试) 剪切 Ctrl+X 删除 Delete 加选 Ctrl+单击(重复单击即可减选,Shift+单击也可以加选,但不能减选!) 串选 随时右键...可看到 选择中点 同串选 复制 Ctrl+V,或按住Ctrl移动草图实体! 旋转模型: • 水平或竖直 方向键 • 水平或竖直 90 度 Shift+方向键 • 顺时针或逆时针 Alt+左或右方向键 • 平移模型 Ctrl+方向键 放大 shift+z 缩小 z 整屏显示全图 f 视图定向 视图定向菜单 空格键 上一视图 Ctrl+Shift+Z 前视 Ctrl+1 后视 Ctrl+2 左视 Ctrl+3 右视 Ctrl+4 上视 Ctrl+5 下视 Ctrl+6 等轴测 Ctrl+7 正视与 Ctrl+8 选择过滤器 过滤边线 e 过滤顶点 v 过滤面 x 切换选择过滤器工具栏 F5 切换选择过滤器(开关) F6 文件菜单项目 新建 SolidWorks 文件 Ctrl+N 打开文件 Ctrl+O 从 WEB 文件夹打开 Ctrl+W 保存 Ctrl+S 打印 Ctrl+P 额外快捷键 在 PropertyManager 或对话框中访问在线帮助 F1 在 FeatureManager 设计树中重新命名一项目(对大部分项目适用) F2 重建模型 Ctrl+B 强使重建模型及重建其所有特征 Ctrl+Q 重绘屏幕 Ctrl+R 在打开的 SolidWorks 文件之间循环 Ctrl+Tab 直线到圆弧圆弧到直线(草图绘制模式) A 下一窗口 Ctrl+F6 关闭窗口 Ctrl+F4 工具 ----自定义----键盘 里面 自己确定 习惯用什么就怎么设置 一般组合是ctrl+数字 或者字母 或者小键盘 或者独立小键盘也可以设置为快捷键! 旋转模型:水平或竖直:方向键;水平或竖直 90 度:Shift+方向键;顺时针或逆时针:Alt+左或右方向键 平移模型:Ctrl+方向键 放大:Z 缩小:z 整屏显示全图:f 上一视图:Ctrl+Shift+Z -------------------------------------------------------------------------------- 视图定向菜单:空格键 前视:Ctrl+1 后视:Ctrl+2 左视:Ctrl+3 右视:Ctrl+4 上视:Ctrl+5 下视:Ctrl+6 等轴测:Ctrl+7 正视于:Ctrl+8 -------------------------------------------------------------------------------- 过滤边线:e 过滤顶点:v 过滤面:x 切换选择过滤器工具栏:F5 切换选择过滤器(开/关):F6 -------------------------------------------------------------------------------- 新建文件:Ctrl+N 打开文件:Ctrl+O 从 WEB 文件夹打开:Ctrl+W 从零件制作工程图:Ctrl+D 从零件制作装配体:Ctrl+A 保存:Ctrl+S 打印:Ctrl+P -------------------------------------------------------------------------------- 重复上一命令:Enter 在 PropertyManager 或对话框中访问在线帮助:F1 在 FeatureManager 设计树中重新命名一项目(对大部分项目适用):F2 展开或折叠 FeatureManager设计树:c 重建模型:Ctrl+B 强使重建模型及重建其所有特征:Ctrl+Q 重绘屏幕:Ctrl+R 在打开的 SolidWorks 文件之间循环:Ctrl+Tab 直线到圆弧/圆弧到直线(草图绘制模式):a 撤消:Ctrl+z 剪切:Ctrl+x 复制:Ctrl+c 粘贴:Ctrl+v 删除:Delete 下一窗口:Ctrl+F6 关闭窗口:Ctrl+F4 ******************************* 后视 CTRL 2 重建模型 CTRL B 底视 CTRL 6 Redraw CTRL R 复制 CTRL C 右视 CTRL 4 剪切 CTRL X 保存 CTRL S 删除 Delete 选择边 E Forced Rebuild CTRL Q 选择面 X 前视 CTRL 1 选择顶视 V 帮助 Shift F1/F1 打开/关闭选择过滤器 F5 (Toolbar) 左视 CTRL 3 切换选择过滤器 F6 顶视 CTRL 5 新建 CTRL N Undo CTRL Z 打开 CTRL O 视图对话框 SpaceBar 粘贴 CTRL V 放大 Shift Z 前一视图 CTRL Shift Z 缩小 Z 打印 CTRL P 缩放到屏幕 F 上下二等角轴测 CTRL 7 ****************************************** 新建 Ctrl+N 打开 Ctrl+O 关闭 Ctrl+W 保存 Ctrl+S 打印 Ctrl+P 浏览最近文档 R 撤销 Ctrl+Z 恢复 Ctrl+Y 重复上一命令 Enter 剪切 Ctrl+X 复制 Ctrl+C 粘贴 Ctrl+V 删除 Delete 重建模型 Ctrl+B 重画 Ctrl+R 视图定向 SpaceBar 整屏显示全图 F 快速捕捉 F3 全屏 F11 特征管理员区域 F9 工具栏 F10 任务窗格 Ctrl+F1 直线 L 直线圆弧切换 A 扩展折叠数 C 折叠所有项目 Shift+C 过滤边线 E 查找替换 Ctrl+F 下一边线 N Force Regen Ctrl+Q 快捷栏 S 过滤顶点 V 切换选择过滤器工具栏 F5 切换选择过滤器 F6 拼写检验程序 F7 过滤面 X 接受边线 Y 缩小 Z 放大 Shift+Z 上一视图 Ctrl+Shift+Z ******************************************** 滚轮的快捷键: 如果使用三键鼠标,您可以动态使用以下查看命令: 平移 - 按住 Ctrl 键并使用鼠标中间按键来拖动。(在激活的工程图中,不需按住 Ctrl 键。) 旋转零件或装配体 – 使用鼠标中间按键来拖动。 缩放所有类型的文件 - 按住 Shift 键并使用鼠标中间按键来拖动。 另外常用: 撤消 Ctrl+Z, 重做 Ctrl+Y(即反撤销,不是在每个情况下都可以,自己试一试) 剪切 Ctrl+X 删除 Delete 加选 Ctrl+单击(重复单击即可减选,Shift+单击也可以加选,但不能减选!) 串选 随时右键...可看到 选择中点 同串选 复制 Ctrl+V,或按住Ctrl移动草图实体! 旋转模型: • 水平或竖直 方向键 • 水平或竖直 90 度 Shift+方向键 • 顺时针或逆时针 Alt+左或右方向键 • 平移模型 Ctrl+方向键 放大 shift+z 缩小 z 整屏显示全图 f 视图定向 视图定向菜单 空格键 上一视图 Ctrl+Shift+Z 前视 Ctrl+1 后视 Ctrl+2 左视 Ctrl+3 右视 Ctrl+4 上视 Ctrl+5 下视 Ctrl+6 等轴测 Ctrl+7 正视与 Ctrl+8 选择过滤器 过滤边线 e 过滤顶点 v 过滤面 x 切换选择过滤器工具栏 F5 切换选择过滤器(开/关) F6 文件菜单项目 新建 SolidWorks 文件 Ctrl+N 打开文件 Ctrl+O 从 WEB 文件夹打开 Ctrl+W 保存 Ctrl+S 打印 Ctrl+P 额外快捷键 在 PropertyManager 或对话框中访问在线帮助 F1 在 FeatureManager 设计树中重新命名一项目(对大部分项目适用) F2 重建模型 Ctrl+B 强使重建模型及重建其所有特征 Ctrl+Q 重绘屏幕 Ctrl+R 在打开的 SolidWorks 文件之间循环 Ctrl+Tab 直线到圆弧/圆弧到直线(草图绘制模式) A 下一窗口 Ctrl+F6 关闭窗口 Ctrl+F4 (转)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值