Je veux utiliser Validator.TryValidateValue()
mais ne comprennent pas la mécanique. Dis, je donne les résultats suivants:ValidationContext Comprendre dans DataAnnotations
public class User {
[Required(AllowEmptyStrings = false)]
[StringLength(6)]
public string Name { get; set; }
}
et la méthode:
public void CreateUser(string name) {...}
Mon code de validation est:
ValidationAttribute[] attrs = bit of reflection here to populate from User class
var ctx = new ValidationContext(name, null, null);
var errors = new List<ValidationResult>();
bool valid = Validator.TryValidateValue(name, ctx, errors, attrs);
Il fonctionne bien jusqu'à ce que la valeur de name
est null
. Je reçois ArgumentNullException
lors de l'instanciation ValidationContext
et je ne comprends pas pourquoi. TryValidateValue()
exige également un contexte non nul. J'ai une valeur et une liste d'attributs à valider. Qu'est-ce que c'est ValidationContext
?
Ne pas avoir dupé avec ce avant qu'il me semble que vous devriez passer le type d'objet dans le ValidationContext, pas la propriété ... passant ainsi dans une instance de l'utilisateur qui est non nulle. –
Si vous souhaitez personnaliser l'attribut DataAnnotation, vous pouvez accéder à [mon message] (http://weblogs.asp.net/thangchung/archive/2010/06/25/extending-resource-provider-for-soring- resources-in-the-database.aspx) A côté de cela, vous pouvez également personnaliser le validateur. – thangchung