gpt4 book ai didi

c# - 我可以在具有流畅验证的验证器中使用验证器吗

转载 作者:行者123 更新时间:2023-11-30 13:43:34 26 4
gpt4 key购买 nike

c#伪代码

如果我有课

class Person
{
string Name
date DOB
Address address
}

我可以制作一个 PersonValidator 来验证 Person

但是由于 Address 是一个复杂的类型,有时我想单独验证它,所以我有一个 PersonValidator 和一个 AddressValidator。问题是,如何在我的 PersonValidator 中使用我的 AddressValidator?

class PersonValidator : AbstractValidator<Person>
{
PersonValidator()
{
RuleFor(c => c.Name).NotEmpty();

var addressValidator = new AddressValidator();
addressValidator.Validate( person.address ) // ???
}
}

最佳答案

您可以调用 .SetValidator(IValidator) 方法。

class PersonValidator : AbstractValidator<Person>
{
PersonValidator()
{
// CascadeMode = CascadeMode.StopOnFirstFailure;

RuleFor(c => c.Name)
.NotEmpty().WithErrorCode("name_required");

// Checks that the IEnumerable<Address> has at least 1 item
RuleFor(c => c.Address)
.NotEmpty().WithErrorCode("addresses_required");

RuleForEach(c => c.Address)
.SetValidator(new AddressValidator());

}
}

class AddressValidator : AbstractValidator<Address>
{
AddressValidator()
{
// CascadeMode = CascadeMode.Continue;

RuleFor(c => c.Postcode)
.NotEmpty().WithErrorCode("postcode_required");
}
}

关于c# - 我可以在具有流畅验证的验证器中使用验证器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53479100/

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