Ive kämpfte mit diesem Problem, das ich ursprünglich dachte, kann zu tun mit Polymorphismus/Vererbung, die meine Validierung aber ive verengt es auf diese...
Hier ist die Klassenstruktur
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;
}
}
Der 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");
}
}
Dieser Test ist erfolgreich, wenn ich das Regelsatzmaterial entferne. Aber sobald der Regelsatz angewendet wird, kann ich das Objekt nicht korrekt validieren.
Kann jemand etwas Licht in diese Angelegenheit bringen?
Zum Wohl,