Sub-Validatoren registrieren
Soll eine Property mit einem bestimmten Validator validiert werden, muss dieser entsprechend für die Validierung zugeordnet werden.
public class PersonViewModelValidator : FluentViewModelValidator<PersonViewModel> { public PersonViewModelValidator() { // ... andere FluentValidation Regeln ... RuleFor(person => person.Address).SetValidator(GetValidatorFor<AddressXmlViewModel, AddressXmlViewModelValidator>()); RuleFor(person => person.Publications).SetCollectionValidator( GetValidatorFor<PublicationViewModel, PublicationViewModelValidator>()); // Alternative API für die Registrierung von Sub-Validatoren. // Hier wird der Validator-Typ automatisch von der PR-Engine ermittelt. RuleFor(person => person.Address).SetValidator(GetValidatorFor<AddressXmlViewModel>()); RuleFor(person => person.Address).SetValidator(GetValidatorFor(person => person.Address)); } }
Wird ein CompositeControl verwendet, kann das öffentliche Interface des ViewModels verwendet werden, um den Validator zu finden und zu registrieren:
RuleFor(step => step.MyCompositeControlViewModel).SetValidator( GetValidatorFor<IMyCompositeControlViewModel>())