Web API Filter ActionFilterAttribute 使用
2018-06-22 06:07:01来源:未知 阅读 ()
WebApi 提供两种过滤器的类型:
1、ActionFilterAttribute
2、exceptionFilterAttribute
两个类都是抽象类,ActionFilter 主要实现执行请求方法体之前(覆盖基类方法:OnActionExecuting),和之后的事件处理(覆盖基类方法:OnActionExecuted)。exceptionFilter 主要实现出发异常方法(覆盖基类方法:OnException)。
过滤器在实际项目中都会经常使用到,例如:日志、安全验证、全局错误处理等。
下面写一个小例子:
1、新建ActionFilterAttribute:
public class ActionFilter : ActionFilterAttribute { public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext) { base.OnActionExecuting(actionContext); //获取请求消息提数据 Stream stream = actionContext.Request.Content.ReadAsStreamAsync().Result; Encoding encoding = Encoding.UTF8; stream.Position = 0; string responseData = ""; using (StreamReader reader = new StreamReader(stream, encoding)) { responseData = reader.ReadToEnd().ToString(); } //反序列化进行处理 var serialize = new JavaScriptSerializer(); var obj = serialize.Deserialize<RequestDTO>(responseData); //在action执行前终止请求时,应该使用填充方法Response,将不返回action方法体。 if (obj == null) actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, obj); if (string.IsNullOrEmpty(obj.PhoneType) || string.IsNullOrEmpty(obj.PhoneVersion) || string.IsNullOrEmpty(obj.PhoneID) || obj.StartCity < 1) { actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, obj); } } }
2、在Api控制器的Action方法上加上[过滤器类],例如:[Filter.ActionFilter]
public class Mobile450Controller : ApiController { private DoWork450Invoke _DoWork = new DoWork450Invoke(); [Uzai.Mobile.Filter.ActionFilter] [HttpPost] public RepProductTopicsList GetRecmdProductTopicsList(ReqProductTopicsList reqDTO) { return _DoWork.GetRecmdProductTopicsList(reqDTO); } }
以后会慢慢完善这篇文章,WebApi 的简单的例子,网上也不少,但是设计深入开发和实际应用的少之又少,这方面的书籍也不多,大家可以上MSDN上寻求自己的答案。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET使用WebService实现天气预报功能 2020-01-20
- 浅谈ASP.Net Core WebApi几种版本控制对比 2019-12-10
- 详解Visual之Web Essentials的使用方法 2019-11-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash