编译前反射打造支持AOT的FluentValidation.MinimalAPI

编译前反射打造支持AOT的FluentValidation.MinimalAPI

编码文章call10242025-06-18 11:25:453A+A-

Aghanim.FluentValidation.MinimalAPI

https://github.com/NianG-net/Aghanim.FluentValidation.MinimalAPI
FluentValidatio是一个常用的用来构建强类型验证规则的类库通常用于对request等进行校验有不少类库通过拓展让MinimalAPI支持
FluentValidation的校验
但是因为在现有类库中使用反射来自动注册服务在调用校验处也大量使用反射导致无法正常AOT(裁剪)并且效率非常低下
这次的类库就是解决这个问题,与基础的FluentValidation相同都使用AddValidatorsFromAssemblyContaining来自动添加服务

不同的是受到RDG(Request Delegate Generator)的启发
使用源代码生成器+拦截器在编译前进行反射查找到所有需要注入的服务
这样就完全消除了反射的部分
在实际调用Validator的部分通过预先创建字典来匹配需要检验的request不去使用反射部分

你也可以自定义ValidationEndpointFilter默认使用DefaultFluentValidationEndpointFilter,添加日志/修改返回DTO
使用时直接添加即可

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4