验证器未应用于子 属性

Validator not being applied on child property

我正在创建一个 POST API,它使用 [FromBody]Order 作为输入。这个 Order 有一个 Buyer 属性 并且这两个都在使用 FluentValidation 进行验证。以下是 classes:

[Validator(typeof(OrderValidator))]
public class Order
{
    public int ProductId { get; set; }
    public Buyer Buyer { get; set; }
}

[Validator(typeof(BuyerValidator))]
public class Buyer
{
    public string Name { get; set; }
    public string Email { get; set; }
}

这些 classes 的验证者:

public class OrderValidator : AbstractValidator<Order>
{
    public OrderValidator()
    {
        RuleFor(x => x.ProductId).GreaterThan(0);
        RuleFor(x => x.Buyer).NotNull();
    }
}

public class BuyerValidator : AbstractValidator<Buyer>
{
    public BuyerValidator()
    {
        RuleFor(x => x.Name).Length(3, 100);
        RuleFor(x => x.Email).Length(5, 100);
    }
}

在这里,我在两个 class 上使用 Validator 属性应用验证器。它在 Order class 上运行良好,但未在 Buyer class 上执行。我是否必须以其他方式为 Buyer class 设置验证器?

像这样扩展买家验证:

public class OrderValidator : AbstractValidator<Order>
{
    public OrderValidator()
    {
        RuleFor(x => x.ProductId).GreaterThan(0);
        RuleFor(x => x.Buyer).NotNull().SetValidator(new BuyerValidator())
    }
}

未实际测试,在文档中找到 here