FluentValidation 带占位符的自定义验证器

问题描述 投票:0回答:0

说我有一个客户喜欢的课程

public string RegistrationNr 
public bool Archived

我创建了一个验证器

internal sealed class AddCustomerValidator : AbstractValidator<AddCustomerViewModel> 
{ 
private readonly ICustomerService _customerService; 
public AddCustomerValidator(ICustomerService customerService) 
{ 
_customerService = customerService;

        RuleFor(c => c.RegistrationNumber)
            .Must((registrationNumber) =>
            {
                var customer = _customerService.FindByRegistrationNumber(registrationNumber);
                return customer == null;
            })
            .WithMessage("Number already in use.");
     }
 }

这个效果很好

现在我想要更详细的消息,例如“活跃客户已使用的号码”或“已存档客户已使用的号码”

我知道我可以使用占位符并创建类似的消息

.WithMessage("Number already in use for {0} customer.")

但我不明白如何从客户那里获得价值。

我尝试创建 CustomValidators 但陷入困境

我在这个问题上发现的很多问题都涉及旧版本,我使用11.6.0

c# fluentvalidation
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.