2017-05-25 1 views
1

Je mis à jour un projet à la dernière version de Fluent Validation et je reçois un avertissement:personnalisé est obsolète

'AbstractValidator<AccountSignInModel>.Custom(Func<AccountSignInModel, ValidationFailure>)' 
is obsolete: 'Use model-level RuleFor(x => x) instead' 

Quand je suis en utilisant le code suivant:

When(x => !String.IsNullOrEmpty(x.Password) && !String.IsNullOrEmpty(x.Username),() => { 

    Custom(x => { 

     Boolean valid = service.ValidateCredentials(x.Username, x.Password)); 

     if (!valid) 
     return new ValidationFailure("Credentials", "Authentication failed"); 

     return null; 

    }); 

    }); 

Je ne sais pas comment le convertir en RuleFor(x => x).

Ou y at-il une autre alternative à la coutume?

Répondre

0

Nous avons décidé d'utiliser Fluent Validation récemment sur notre application. Donc, je suis assez nouveau à ce sujet, en pensant à des choses que nous allons de l'avant.

Vous êtes tombé sur votre problème lors de la recherche d'un problème différent. Il n'y a pas beaucoup de ressources à ce sujet. Je pensais partager mes pensées, si ça peut t'aider. Voici ce que je ferais. Donc, je suis fondamentalement en utilisant votre méthode pour définir dans un ensemble de règles. Vous devrez peut-être ajouter du code pour valider le jeu de règles.

var result = validator.Validate(NewCustom, ruleSet: "SomeNameHere"); 

Avertissement: Ce code ne peut pas être compilé. Mais cela vous donnera une idée sur la façon d'aborder le problème. Si vous avez de meilleures idées ou si vous pouviez faire fonctionner le code, veuillez poster la réponse. Cela m'aidera à acquérir plus de connaissances. Merci.