Il framework .NET viene fornito con una classe Validator che può esercitare la logica di convalida in isolamento. Il codice da testare potrebbe essere il seguente:
var achievement = new AchievementVM();
var context = new ValidationContext(achievement,
serviceProvider: null, items: null);
var results = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(achievement, context, results, true);
Assert.IsTrue(results.Any(vr => vr.ErrorMessage == "The title field is required."));
achievement.Title = "Really really long title that violates "
+ "the range constraint and should not be accepted as "
+ "valid input if this has been done correctly.";
Validator.TryValidateObject(achievement, context, results, true);
Assert.IsTrue(results.Any(vr => vr.ErrorMessage == "Title must be 100 characters or less."));
Nessuna necessità di utilità personalizzate per cercare l'esistenza di attributi. La classe Validator esegue il lavoro automaticamente e popola una raccolta ValidationResult uguale all'infrastruttura MVC.
Una buona annotazione su questo metodo è disponibile su K. Scott Allen's blog.
fonte
2012-08-16 18:40:23
Cosa fanno queste annotazioni di dati? È convalida o qualcos'altro? –
Segnala alcuni componenti da convalidare. Un esempio pratico di convalida manuale con annotazioni di dati: http://odetocode.com/blogs/scott/archive/2011/06/29/manual-validation-with-data-annotations.aspx –