gpt4 book ai didi

fluentvalidation - 在 FluentValidation 中验证整数列表

转载 作者:行者123 更新时间:2023-12-02 01:05:19 28 4
gpt4 key购买 nike

如何使用流畅的验证来验证整数列表?

我的模型有:

 public List<int> WindowGlassItems { get; set; }

模型验证器有

RuleFor(x => x.WindowGlassItems).SetCollectionValidator(new WindowGlassItemsValidator());

public class WindowGlassItemsValidator : AbstractValidator<int>
{
public WindowGlassItemsValidator()
{
RuleFor(x=>x).NotNull().NotEqual(0).WithMessage("GLASS REQ");
}
}

我得到:

无法自动确定表达式 x => x 的属性名称。请通过调用“WithName”指定自定义属性名称。

最佳答案

您看到该错误是因为您的 RuleFor 方法需要指定一个属性。我一直无法让 CollectionValidators 像您一样使用原始类型。相反,我使用自定义验证方法和 Must,就像这样。

我使用这种方法的唯一问题是我无法避免在 2 次验证中重复错误消息。如果您在列表为空时不需要它,则可以在 NotNull 调用后将其省略。

    RuleFor(x => x.WindowGlassItems)
//Stop on first failure to avoid exception in method with null value
.Cascade(CascadeMode.StopOnFirstFailure)
.NotNull().WithMessage("GLASS REQ")
.Must(NotEqualZero).WithMessage("GLASS REQ");

private bool NotEqualZero(List<int> ints)
{
return ints.All(i => i != 0);
}

关于fluentvalidation - 在 FluentValidation 中验证整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22984926/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com