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>())
Cookie Consent mit Real Cookie Banner