FluentValidation 在 C#/.NET 中不起作用

问题描述 投票:0回答:1

我正在尝试验证端点的输入参数。我想使用 FluentValidator,逻辑如下

// This class is in in different assembly than Program.cs class
public class EIdLoginDtoValidator : AbstractValidator<EIdLoginDto>
{
    #region Constructors
    public EIdLoginDtoValidator()
    {
        RuleFor(x => x.EIdToken)
            .NotNull()
            .NotEmpty()
            .WithMessage("Some message");
    }

    #endregion
}

然后我在 Program.cs 类中注册 FluentValidator,如下所示:

builder.Services.AddFluentValidationAutoValidation();
builder.Services.AddValidatorsFromAssemblyContaining<EIdLoginDtoValidator>();

但是,当我调试应用程序时,断点转到 EIdLoginDtoValidator,这很好,但即使 EIdToken 为空,程序执行也会转到端点。 我做错了什么? 我已经安装了 FluentValidation.AspNetCore" Version="11.2.2" 并且我使用了 .net 8。

c# .net validation oop fluentvalidation
1个回答
0
投票

不再维护 FluentValidation.AspNetCore 包。检查链接。所以“AddFluentValidationAutoValidation”将不起作用。在 fluidvalidation.net(您现在应该使用的那个)上,自动验证仅适用于在 .NET Core 3.1、.NET 5 或 .NET 6 上运行的 ASP.NET。检查链接

对于 ASP.NET 的自动验证,FluentValidation 支持在 .NET Core 3.1、.NET 5 或 .NET 6 上运行的 ASP.NET。

© www.soinside.com 2019 - 2024. All rights reserved.