分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

.net core AOP之Filter

发布时间:2023-09-06 01:57责任编辑:熊小新关键词:暂无标签

  当我们进行项目开发时,往往在开发过程中需要临时加入一些常用功能性代码,如身份验证、日志记录、异常获取等功能。如果每个方法中都加入这些功能性代码的话,无疑使项目显得过于臃肿,代码繁杂。这时候就要加入过滤器了。.net framework及.net core中都支持非常简单的过滤器操作:Filter。它能在函数执行前或执行后切入函数。而不需要修改原来的代码,使项目更加清晰。

  下面讲解Filter在.net core MVC中的用法。

  首先,新建.net core mvc web应用程序,然后加入MyFilter类,继承ActionFilterAttribute

 public class MyFilter : ActionFilterAttribute ???{ ???????public string Message { get; set; } ???????public override void OnActionExecuting(ActionExecutingContext filterContext) ???????{ ???????????base.OnActionExecuting(filterContext); ???????????filterContext.HttpContext.Response.Write("<br />" + "执行OnActionExecuting:" + Message + "<br />"); ???????} ???????public override void OnActionExecuted(ActionExecutedContext filterContext) ???????{ ???????????base.OnActionExecuted(filterContext); ???????????filterContext.HttpContext.Response.Write("<br />"+ "执行OnActionExecuted:" + Message + "<br />"); ???????} ???????public override void OnResultExecuting(ResultExecutingContext filterContext) ???????{ ???????????base.OnResultExecuting(filterContext); ???????????filterContext.HttpContext.Response.Write("<br />" + "执行OnResultExecuting:" + Message + "<br />"); ???????} ???????public override void OnResultExecuted(ResultExecutedContext filterContext) ???????{ ???????????base.OnResultExecuted(filterContext); ???????????filterContext.HttpContext.Response.Write("<br />" + "执行OnResultExecuted:" + Message + "<br />"); ???????} ???}

  然后在Home控制器中的Action中加入过滤器

public class HomeController : Controller ???{ ???????[MyFilter(Message ="首页")] ???????public ActionResult Index() ???????{ ???????????return Content("<br />" + "执行Index中的内容"+ "<br />"); ???????} ???????[MyFilter(Message = "关于页面")] ???????public ActionResult About() ???????{ ???????????return Content("<br />" + "执行About中的内容" + "<br />"); ???????} ???}

  这时候运行项目:/Home/Index,打印出如下内容:

  

  运行/Home/About,打印出如下内容:

  

  由此可以发现:执行循序是:OnActionExecuting>OnActionExecuted>OnResultExecuting>Action>OnResultExecuted

  (Action执行之前执行OnActionExecuting,Action执行之后执行OnActionExecuted,Action返回之前执行OnResultExecuting,Action返回之后执行OnResultExecuted)

.net core AOP之Filter

原文地址:https://www.cnblogs.com/ontheroute/p/9113976.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved