FluentValidation - 仅当值不为空时检查值是表达式
Posted
技术标签:
【中文标题】FluentValidation - 仅当值不为空时检查值是表达式【英文标题】:FluentValidation - Check value is an expression only if the value is not null 【发布时间】:2021-12-21 13:22:15 【问题描述】:我正在尝试验证 Cron 表达式仅在属性不为空时才有效
我的代码是这样的,
RuleFor(team => team.PlayTimeSlot)
.Must(IsValidSchedule)
.When(team => !string.IsNullOrEmpty(team.PlayTimeSlot));
public bool IsValidSchedule(string schedule)
// Some Schedule validation logic
但是这不起作用。我错过了什么?
【问题讨论】:
这段代码很适合我。你能告诉我们你是如何测试它的吗?也许你需要string.IsNullOrWhiteSpace
?
@RomanMarusyk 问题是该属性是一个可为空的字符串,而该方法只接受字符串。由于该方法正在调用第三方 dll,我无法更改其签名
如果您将其添加到问题中会很棒,因为代码看起来不错
【参考方案1】:
我会尝试将所有内容分成方法作为替代方法:
RuleFor(team => team.PlayTimeSlot)
.When(playTimeValid)
.Must(IsValidSchedule);
public bool isValidSchedule()
return true
public bool playTimeValid(TeamModel team)
if !string.isnullorempty(team.playtimeslot)
return true
你能用你的代码试试吗?
【讨论】:
但是它是如何解决这个问题的呢?这是一样的以上是关于FluentValidation - 仅当值不为空时检查值是表达式的主要内容,如果未能解决你的问题,请参考以下文章