Tengo un gráfico de objetos salpicado con atributos de anotación de datos, donde algunas propiedades de objetos son clases que tienen atributos de validación, y así sucesivamente.Anotaciones de datos: validando recursivamente un gráfico completo de objetos
En el siguiente escenario:
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; }
}
Si trato de validar un Employee
's Address
sin valor para PostalCode
, entonces me gustaría (y esperan) una excepción, pero me da ninguna. Así es como lo estoy haciendo:
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));
¿Qué otras opciones tengo con Validator
que aseguraría todas las propiedades son validados de forma recursiva ?
Muchas gracias de antemano.
+ 1 para una buena solución – Jehof
Bien, pero ¿y las colecciones? Sería genial tener la capacidad de validar propiedades como esta 'public IList
Addresses'. De todos modos, gracias por la solución. – altsoEl atributo no se evalúa por mí. –