FluentValidation règle pour objet null

J'ai essayé de travailler sur la façon de créer un FluentValidation règle qui vérifie si l'instance d'un objet, c'est la validation n'est pas null, avant la validation de ses propriétés.

Je préfère encapsuler cette null validation dans le Validateur, plutôt que de le faire dans le code appelant.

Voir l'exemple de code ci-dessous avec les commentaires où la logique requise est nécessaire:

namespace MyNamespace
{
    using FluentValidation;

    public class Customer
    {
        public string Surname { get; set; }
    }

    public class CustomerValidator: AbstractValidator<Customer> 
    {
        public CustomerValidator() 
        {
            //Rule to check the customer instance is not null.

            //Don't continue validating.

            RuleFor(c => c.Surname).NotEmpty();
        }
    }

    public class MyClass
    {
        public void DoCustomerWork(int id)
        {
            var customer = GetCustomer(id);
            var validator = new CustomerValidator();

            var results = validator.Validate(customer);

            var validationSucceeded = results.IsValid;
        }

        public Customer GetCustomer(int id)
        {
            return null;
        }
    }
}

Donc ma question est comment puis-je vérifier dans le CustomerValidator() constructeur que l'instance actuelle de la clientèle n'est pas null et abandonner autre règle de traitement si elle est nulle?

Merci d'avance.

  • Remplacer le Validate méthode?
  • Afin de disposer d'une extension de la méthode qui vérifie si elle est null premier avant d'appeler la base de Valider() la méthode?
  • Non, voir ma réponse ci-dessous. Vous appelez ça comme vous le feriez pour tout autre programme de validation.
  • La dernière réponse à cette question est de remplacer la PreValidate() la méthode. Exemple de Code ci-dessous.
InformationsquelleAutor Bern | 2013-06-13