Asp.net中一共有五种Fillter

  • AuthorizationFilter 授权过滤器
  • IResourceFilter 资源管理过滤器
  • IActionFilter 行为过滤器
  • IExceptionFilter 异常过滤器
  • IResultFilter 结果过滤器
        public class CtmActionFilterAttribute : Attribute,IActionFilter
        {
            public void OnActionExecuted(ActionExecutedContext context)
            {
                Console.WriteLine("OnActionExecuted");
            }
    
            public void OnActionExecuting(ActionExecutingContext context)
            {
                Console.WriteLine("OnActionExecuting");
            }
        }

 

注册方式

  • 方法注册
  • 类注册
  • 全局注册

     

方法注册

 

    [Route("api/[controller]")]
    [ApiController]

    public class DoHomeworkController : ControllerBase
    {
        [HttpGet]
        public string DoHomeWork()
        {
            return GetInCar();
        }

        private string GetInCar()
        {
            return "上车";
        }

        [HttpGet("2")]
        [CtmFillters.CtmActionFilter]
        public string DoHomeWork1()
        {
            return GetInCar();
        }
    }

类注册

[Route("api/[controller]")]
    [ApiController]
    [CtmFillters.CtmActionFilter]
    public class DoHomeworkController : ControllerBase
    {
        [HttpGet]
        public string DoHomeWork()
        {
            return GetInCar();
        }

        private string GetInCar()
        {
            return "上车";
        }

        [HttpGet("2")]
        public string DoHomeWork1()
        {
            return GetInCar();
        }
    }

全局注册先于类注册先于方法注册执行

同理其他Filter的注册方式

另外Filter中的依赖注入,可使用[TypeFilter(Typeof(CtmActionFilterAttribute))]

 

posted on   HRDK  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义



点击右上角即可分享
微信分享提示