internal sealed class MeetingValidator : AbstractValidator<Meeting>
{
public MeetingValidator()
{
RuleFor(m => new { m.Start, m.End })
.Must(d => d.End - d.Start > 0)
// Other Rules
}
}
有没有办法在匿名类型上声明AbstractValidator?
这是为了重构目的.
该测试对除会议之外的其他类型是常见的,我希望最大限度地减少代码的重复.
internal sealed class EndDateValidator : AbstractValidator<????>
{
public EndDateValidator ()
{
RuleFor(m => ????)
.Must(d => d.End - d.Start > 0)
}
}
public static IRuleBuilderOptions<T, ????> MustHaveAEndStartDate<T>(this IRuleBuilder<T, ????> ruleBuilder)
{
return ruleBuilder.SetValidator(new EndDateValidator());
}
internal sealed class MeetingValidator : AbstractValidator<Meeting>
{
public MeetingValidator()
{
RuleFor(m => new { m.Start, m.End }) // or something else
.MustHaveValidEndDate()
}
}