.NET 11 Preview 6 来了!这次更新真不少
2026/7/15 17:09:14 网站建设 项目流程

大家好!.NET 11 的第 6 个预览版发布了。离 11 月正式版越来越近,这个版本的新东西也越来越"能打"。

先说结论:这个版本最大的看点是"异步验证"全家桶落地、union 联合类型开箱即用、还有默认开启的 CSRF 防护。下面挨个说。

一、ASP.NET Core:Web 开发的更新最多

1. 异步验证终于来了

以前用 DataAnnotations 做验证,有个老大难问题:验证规则只能是同步的。想在验证时查个数据库(比如"这个邮箱是不是已经注册过了"),要么阻塞线程硬等,要么绕开验证体系自己写。

现在好了,直接继承 AsyncValidationAttribute,实现 IsValidAsync 方法,就能在验证里放心地 await:

public sealed class UniqueEmailAttribute : AsyncValidationAttribute{    protected override ValidationResult? IsValid(object? value, ValidationContext context) =>        throw new InvalidOperationException("请用 IsValidAsync 验证");    protected override async Task<ValidationResult?> IsValidAsync(        object? value, ValidationContext context, CancellationToken cancellationToken)    {        var users = context.GetRequiredService<IUserService>();        if (value is string email && await users.EmailExistsAsync(email, cancellationToken))        {            return new ValidationResult("这个邮箱已经注册过了");        }        return ValidationResult.Success;    }}

然后像普通验证特性一样,往属性上一贴 [UniqueEmail] 就行。

如果验证逻辑涉及多个属性(比如"这个日期还有没有房"),可以让模型实现 IAsyncValidatableObject 接口。Minimal API 只要注册了 AddValidation(),框架会在进入接口之前自动帮你跑完这些异步验证。

而且框架很聪明:能并行跑的验证器会并行跑,集合里的元素也是并行验证的,性能不吃亏

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询