У меня есть правило проверки, которое является общим для многих свойств, которые я хотел бы централизовать в DRY, но в то время как правила NotEmpty()
и т. Д. Работают нормально, Matches(...)
и другие правила проверки подлинности только строки не компилируются.FluentValidation централизовать валидатор регулярных выражений в расширителе валидатора
Нет проблем:
public static IRuleBuilderOptions<T, TProperty> MustNotContainHtml<T, TProperty>(this IRuleBuilderOptions<T, TProperty> ruleBuilder)
{
return ruleBuilder.NotEmpty().WithMessage("Some message.");
}
Понятное не будет компилироваться, так как использует Matches(...)
, который является строка только:
public static IRuleBuilderOptions<T, TProperty> MustNotContainHtml<T, TProperty>(this IRuleBuilderOptions<T, TProperty> ruleBuilder)
{
return ruleBuilder.Matches("<[a-z!/?]|&#").WithMessage("'{PropertyName}' contains special HTML characters which is not allowed.");
}
Какое правило построитель подписи есть для строковых только варианты?
Вы можете принять свои собственные ответы, а также, что помогает нам определить вопросы, нуждающиеся в помощи :) –
я знаю, но все равно нужно ждать до завтра, прежде чем разрешено ;-) – Ted