gpt4 book ai didi

fluentvalidation - 从单个 Custom() 规则返回多个验证失败?

转载 作者:行者123 更新时间:2023-12-04 08:35:27 26 4
gpt4 key购买 nike

使用 FluentValidation 和 Custom()规则,我希望能够验证子对象的集合,并返回 ValidationFailure对于每个无效的子对象。

我不能使用集合验证器,因为子对象不包含执行规则的正确信息 - 它必须在父对象的上下文中运行。

然而Custom() API 限制我返回单个 ValidationFailure或者什么都没有。

是否有我可以使用的模式允许单个规则生成多个错误?

最佳答案

我找到了一个很好的解决方案 - 将 AddRule() 与 DelegateValidator 一起使用。

public MyValidator : AbstractValidator<MyClass>
{
public MyValidator()
{
AddRule(new DelegateValidator<MyClass>(MyRule));
}

private IEnumerable<ValidationFailure> MyRule(
MyClass instance,
ValidationContext<MyClass> context)
{
var result = new List<ValidationFailure>();

// add as many failures to the list as you want:
var message = "This is not a valid message";
result.Add(new ValidationFailure(nameof(MyClass.SomeProperty), message));

return result;
}
}

关于fluentvalidation - 从单个 Custom() 规则返回多个验证失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239461/

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