Пакет FubuMVC.Validation действительно является лишь примером того, как использовать FubuValidation, поскольку мы не создали его для всех крайних случаев. Сказав это, позвольте мне немного рассказать о том, как это работает, чтобы мы могли увидеть, можете ли вы использовать его или вам просто нужно проверить собственное поведение проверки.
ValidationBehavior использует интерфейс IValidationFailureHandler для «обработки» ошибок проверки. Объект Notification, созданный из FubuValidation, помещается в IFubuRequest при срабатывании поведения, а затем вызывается обработчик.
Класс ValidationFailureHandler по умолчанию подключен для всех
ошибки проверки. Это делегирует IValidationFailurePolicy для
определить стратегию использования для данного типа модели (см. мой пост на
политики для объяснения того, как это работает).
Метод расширения валидации имеет перегрузку, которая дает микро
dsl для настройки этих политик:
this.Validation(x => {
x.Failures....
});
Отсюда вы можете 1) применять пользовательские политики с помощью метода ApplyPolicy.
или 2) использовать подход конфигурации на основе предикатов с помощью методов IfModel.
Если вы идете по пути предиката (например, x.Failures.IfModelIs ()), вы можете указать FubuMVC.Validation использовать FubuContinuations для перенаправления или передачи в другое поведение.
цепь. Рекс недавно написал о FubuContinuations, если вы ищете руководство в этой области (http://rexflex.net/2011/07/fubumvc-fubucontinuation/).
Надеюсь, это поможет, и не стесняйтесь спрашивать, не объяснил ли я что-нибудь достаточно,
Джош