• 过滤器


    .net core 过滤器之Filter

    梁身定做 2018-06-18 21:48:34 11028 收藏 5
    分类专栏: .net core跨平台技术 文章标签: .net core aop 过滤器
    版权
      当我们进行项目开发时,往往在开发过程中需要临时加入一些常用功能性代码,如身份验证、日志记录、异常获取等功能。如果每个方法中都加入这些功能性代码的话,无疑使项目显得过于臃肿,代码繁杂。这时候就要加入过滤器了。.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,打印出如下内容:
    ————————————————

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

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

    原文链接:https://blog.csdn.net/u010924260/article/details/80517259

  • 相关阅读:
    udelay、mdelay、ndelay、msleep使用比较说明
    linux多线程驱动中调用udelay()对整个系统造成的影响(by liukun321咕唧咕唧)
    linux设备驱动那点事儿之平台设备理论篇
    misc_register、 register_chrdev 的区别总结
    platform_driver与file_operations两种方法开发led驱动
    rc522 ,pn544区别
    内核驱动中常见的miscdevice、platform_device、platform_driver
    file_operations结构2
    file_operations结构体解析 1
    android5.0问题
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14999274.html
Copyright © 2020-2023  润新知