.net core webapi教程-Filter的多种注册方法
深山老妖浏览:10042023-12-04 14:29:09本文累计收益:0我也要赚钱

Aop,在不修改之前代码的基础上,动态增加功能,但是我们现在无论是ResourceFilter还是ActionFilter都是直接标记在方法上面的,那么如果要对某一些Action、或者对某个项目整体生效呢?

方法一、直接标注在方法上
[HttpGet]
[ResourceFilter]
[AlwaryRunResultFilter]
public IActionResult ResultIndex()
{
     var list = _bookService.Query<BookEntity>(c => true).ToList();
     return new JsonResult(new 
     {
            Id = 123,
            Name = "张三",
            Age = 34
      });
}
方法二、可以标注在控制器上面
[Route("api/[controller]/[action]")]
[ApiController]
[AsyncResourceFilter]
public class FilterController : ControllerBase
{
}

标注在控制器上,特性对控制器里面的所有方法都有效。

方法三、全局注册

打开Program.cs文件,增加如下代码,进行Filter的全局注册。

builder.Services.AddControllers(mvcOptions => {
    //全局注册,对整个项目都生效
    mvcOptions.Filters.Add<ResourceFilterAttribute>();
})

 

评论列表
发表评论
+ 关注