IAsyncResultFilter
2022/5/4 6:23:44
本文主要是介绍IAsyncResultFilter,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、新建类CustomAsyncResultFilterAttribute继承Attribute, IAsyncResultFilter
1 using Microsoft.AspNetCore.Mvc; 2 using Microsoft.AspNetCore.Mvc.Filters; 3 using Project6.Model; 4 5 namespace Project6.Utility.Filters 6 { 7 public class CustomAsyncResultFilterAttribute : Attribute, IAsyncResultFilter 8 { 9 public CustomAsyncResultFilterAttribute() 10 { 11 Console.WriteLine("过滤器的构造函数被执行"); 12 } 13 14 public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) 15 { 16 if(context.Result is JsonResult) 17 { 18 JsonResult jsonResult = (JsonResult)context.Result; 19 context.Result = new JsonResult(new AjaxResult() 20 { 21 Success = true, 22 Message ="OK", 23 Data = jsonResult.Value 24 }); 25 } 26 27 await next.Invoke(); 28 } 29 } 30 }View Code
2、新建控制器CustomAsyncResultController
1 using Microsoft.AspNetCore.Mvc; 2 using Project6.Utility.Filters; 3 4 namespace Project6.Controllers 5 { 6 public class CustomAsyncResultController : Controller 7 { 8 public CustomAsyncResultController() 9 { 10 Console.WriteLine("控制器的构造函数被执行"); 11 } 12 13 [CustomAsyncResultFilter] 14 public IActionResult Index() 15 { 16 return Json(new 17 { 18 Id = 123, 19 Name = "net" 20 }); 21 } 22 } 23 }View Code
3、在各个方法开始处设置断点,运行/CustomAsyncResult
可以发现程序刚运行的时候会执行CustomAsyncResultFilterAttribute的构造方法,只执行一次,后面程序的执行顺序是
CustomAsyncResultController的构造方法-->
CustomAsyncResultController的Action方法-->
CustomAsyncResultFilterAttribute的OnResultExecutionAsync方法
输出结果为
{"success":true,"message":"OK","data":{"id":123,"name":"net"}}
在输出结果前,通过OnResultExecutionAsync方法,可以地结果进行修饰然后在输出。
这篇关于IAsyncResultFilter的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作
- 2024-12-27Nacos多环境配置学习入门