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))]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义