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

360影视 欧美动漫 2025-05-24 13:43 2

摘要:Aghanim.FluentValidation.MinimalAPIFluentValidatio是一个常用的用来构建强类型验证规则的类库通常用于对request等进行校验有不少类库通过拓展让MinimalAPI支持FluentValidation的校验但是

Aghanim.FluentValidation.MinimalAPI

FluentValidatio是一个常用的用来构建强类型验证规则的类库通常用于对request等进行校验有不少类库通过拓展让MinimalAPI支持

FluentValidation的校验

但是因为在现有类库中使用反射来自动注册服务在调用校验处也大量使用反射导致无法正常AOT(裁剪)并且效率非常低下

这次的类库就是解决这个问题,与基础的FluentValidation相同都使用AddValidatorsFromAssemblyContaining来自动添加服务

不同的是受到RDG(Request Delegate Generator)的启发
使用源代码生成器+拦截器在编译前进行反射查找到所有需要注入的服务这样就完全消除了反射的部分

在实际调用Validator的部分通过预先创建字典来匹配需要检验的request不去使用反射部分

使用时直接添加即可

来源:opendotnet

相关推荐