filter 是面向切面编程(aop)的重要实现方式,广泛应用于权限校验、请求日志、性能监控等场景。以下将简要说明其基础开发流程。
1、在 WebAPI 项目中新建一个类,命名为 MyTestFilter。

2、需重载两个核心方法:OnActionExecuting 和 OnActionExecuted。
3、OnActionExecuting 方法会在控制器动作执行前被调用,可用于前置校验或参数预处理。
4、OnActionExecuted 方法则在动作执行完成后触发,适合用于结果封装、异常捕获或后置日志记录。
5、将 AOP 相关逻辑分别注入上述两个方法中,以达成横切关注点的分离。

6、本文不深入展开 AOP 的具体业务逻辑,仅聚焦于如何在过滤器中便捷获取上下文信息。
7、可通过 actionContext.ActionArguments 获取当前请求的所有参数;也可使用 TryGetValue 方法尝试从参数字典中提取 key 为 "id" 的值,并安全赋值给 data 变量。该方式能有效规避键不存在导致的 KeyNotFoundException,适用于含可选参数或动态参数结构的接口场景。
8、在 OnActionExecuted 中可通过 actionExecutedContext.Result 获取动作最终返回结果,并支持对其进行统一包装或替换。
9、完整实现代码如下图所示:

10、只需在任意带参的 GET 接口方法上添加 [MyTestFilter] 特性,即可启用该过滤器。

11、运行调试时,控制台或日志输出中将可见对应拦截与执行信息,如下图所示:

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










