Mam graf obiektu posypanego atrybutami DataAnnotation, gdzie niektóre właściwości obiektów są klasami, które same mają atrybuty sprawdzania poprawności i tak dalej.DataAnnotations: Rekurencyjne sprawdzanie poprawności całego wykresu obiektu
w następującym scenariuszu:
public class Employee
{
[Required]
public string Name { get; set; }
[Required]
public Address Address { get; set; }
}
public class Address
{
[Required]
public string Line1 { get; set; }
public string Line2 { get; set; }
[Required]
public string Town { get; set; }
[Required]
public string PostalCode { get; set; }
}
Gdy próbuję sprawdzić poprawność Employee
„s Address
bez wartości dla PostalCode
, to chciałbym (i oczekują) wyjątek, ale mam żadnego. Oto jak ja to robię:
var employee = new Employee
{
Name = "Neil Barnwell",
Address = new Address
{
Line1 = "My Road",
Town = "My Town",
PostalCode = "" // <- INVALID!
}
};
Validator.ValidateObject(employee, new ValidationContext(employee, null, null));
Jakie inne opcje mam z Validator
który zapewniłby wszystkie właściwości są sprawdzane rekurencyjnie?
Wielkie dzięki z góry.
+ 1 za dobre rozwiązanie – Jehof
Dobrze, ale co z kolekcjami? Byłoby wspaniale mieć zdolność do sprawdzania właściwości takich jak "publiczne adresy IList
". W każdym razie, dzięki za rozwiązanie. – altsoTen atrybut nie jest dla mnie oceniany. –