Ive été aux prises avec ce problème que je pensé à l'origine peut avoir été à voir avec polymorphisme/héritage affectant ma validation mais ive réduit à cette ...objet bloc d'application validation validateur ne fonctionne pas avec rulesets
est ici le structure de classe ..
public class Employee {
[ObjectValidator(Ruleset = "A")]
public EmployeeName Name { get; set; }
public Employee()
{
Name = new EmployeeName();
}
}
public class EmployeeName
{
[StringLengthValidator(1,20,Ruleset = "A")]
public string First { get; set; }
public string Last { get; set; }
public EmployeeName()
{
First = string.Empty;
Last = string.Empty;
}
}
le test:
[TestFixture]
public class ObjectValidationWithRulesets
{
[Test]
public void wont_validate_with_a_ruleset()
{
var person = new Employee()
{
Name = new EmployeeName()
{
First = string.Empty,
Last = string.Empty
}
};
var ruleSetValidator =
ValidationFactory.CreateValidator<Employee>("A");
var validationResults = ruleSetValidator.Validate(person);
Assert.That(!validationResults.IsValid,
"Validation with rulsets failed");
}
}
Ce test passe si je retire retirer les choses Ruleset. Mais une fois que le jeu de règles est appliqué, je ne peux pas obtenir l'objet pour valider correctement.
Quelqu'un peut-il nous éclairer à ce sujet?
Cheers,
Ok. Depuis que la configuration de validation du fichier web.config est en cours de lecture, il s'avère que pour qu'un ObjectValidator fonctionne avec un ensemble de règles, son attribut targetRuleSet doit être défini. Ce qui est intéressant est ce champ mais n'est pas exposé sur l'ObjectValidatorAttribute. Est-ce intentionnellement? – boz