C# 自定义验证未启动

C# 自定义验证未启动,c#,fluentvalidation,C#,Fluentvalidation,FluentValidation 8.5版 ASP.NET版本.NET核心2.2 总结 验证没有启动,我错过什么了吗 //用法 public class Validator : AbstractValidator<Command> { public Validator() { RuleFor(x => x.File).SetValidator(new UploadValidator()); } } 公共类验证程序:AbstractVal

FluentValidation 8.5版 ASP.NET版本.NET核心2.2

总结 验证没有启动,我错过什么了吗

//用法

public class Validator : AbstractValidator<Command>
{
    public Validator()
    {
        RuleFor(x => x.File).SetValidator(new UploadValidator());
    }
}
公共类验证程序:AbstractValidator
{
公共验证器()
{
RuleFor(x=>x.File).SetValidator(新的UploadValidator());
}
}
//这是我的自定义验证器

public class UploadValidator : AbstractValidator<IFormFile>
{
    public UploadValidator()
    {
        RuleFor(m => m).NotNull()
            .WithMessage("File to upload is missing");
        
        RuleFor(m => m.Length).GreaterThan(0)
            .WithMessage("File size is too small");

        // 157286400 = 150mb;
        RuleFor(x => x.Length).NotNull().LessThanOrEqualTo(157286400)
            .WithMessage("File size is larger than allowed (150 Mb)");
    }
}
公共类上传验证器:AbstractValidator
{
公共上传验证器()
{
(m=>m).NotNull()的规则
.WithMessage(“要上载的文件丢失”);
规则(m=>m.Length)。大于(0)
.WithMessage(“文件大小太小”);
//157286400=150mb;
RuleFor(x=>x.Length).NotNull().LessThanOrEqualTo(157286400)
.WithMessage(“文件大小大于允许的大小(150 Mb)”;
}
}

UploadValidator类继承自
AbstractValidator
。按照命名约定,
ifformfile
是一个接口。看起来FluentValidation不支持验证接口,只支持具体类

要为特定对象定义一组验证规则,您需要创建一个从
AbstractValidator
继承的类,其中
T
是要验证的类的类型

来源:


由于您尚未发布视图模型的代码,因此我无法推荐特定的修复方法。更一般地说,如果您有多种类型的文件上载,请尽可能使用具体类的层次结构来验证对象。您仍然可以使用接口来处理它们,但FluentValidation似乎需要类。

您可以添加将MVC框架与FluentValidation集成在一起的代码吗?另外,如果您没有将FluentValidation与MVC框架显式集成的代码,那么您的验证器将不会被触发