
1. 简单介绍.NET 11 RC2(Release Candidate 2)版本已经在2026-10-13这天发布了这个版本仍然只支持在Visual Studio 2026 Insiders 和 Visual Studio Code(安装了C# Dev Kit.NET extension)中进行使用。同时.NET Conf 2026大会将会在2026年11月份举办(11/10-11/13)到时微软将会发布.NET11正式版这是一个STS版本(Standard Term Support), 微软提供两年支持。.NET11在Runtime, SDK, ASP.NET CoreMAUI以及WinForm等方面都有很多新特性发布。这边只简单尝试一下.NET 11 Minimal API的异步验证新特性。2.准备阶段假定已经安装好了Visual Studio 2026 Insiders和.NET 11 SDK可以通过下方链接进行安装Visual Studio 2026 Insiders.NET 11 Release Candidate 23. 异步验证在Web应用程序中经常会碰到需要异步验证的场景比如用户注册时候的邮箱验证问卷调查是否有重复提交等。既可以通过Javascript异步调用后端webapi进行验证也可以在后端自定义Attribute的方式来验证的。在.NET 11 Minimal API中微软也提供了两个Asynchronous DataAnnotations APIs分别是AsyncValidationAttribute和IAsyncValidatableObject。我们可以继承AsyncValidationAttribute或者实现接口IAsyncValidatableObject来自定义验证逻辑。3.1 创建应用程序1) 假定已经有一个UserService和IUserService其中方法EmailExistsAsync用于验证邮箱的唯一性。方法中使用了Task.Delay用来模拟对远程web api的调用。2) 创建一个自定义UniqueEmailAttribute继承自AsyncValidationAttribute同时重写一下抽象方法IsValidAsync对于同步的抽象方法IsValid直接抛出异常即可。3在IOC容器中注册一下UserService4) 添加一个类在Email property上配置UniqueEmailAttribute4) 配置validation中间件同时创建端点(/register)如下图所示3.2 运行一下1) 使用dotnet run命令运行项目打开swagger UI界面2) 输入一个已经存在的email然后点击Execute按钮如下图所示3) 最后返回了预期的异步验证错误信息4) 如果输入一个不存在的email则Minimal api返回200状态码4. 其他如果是实现接口IAsyncValidatableObject的方式来自定义异步验证逻辑则需要实现一下ValidateAsync方法5.总结本文简单尝试了一下Minimal API的异步验证功能。当前.NET11已经进入Release Candidate 2阶段还需进一步学习一下新特性。本文如果哪里有错误麻烦告之谢谢谢谢