DataAnnotations: Рекурсивная проверка всего графа объектов

У меня есть граф объектов, посыпанный атрибутами DataAnnotation, где некоторые свойства объектов являются классами, которые сами имеют атрибуты валидации, и так далее.

В следующем сценарии:

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; }
}

Если я пытаюсь проверить Адрес сотрудникаАдрес без значения для Почтовый индекс, то я бы хотел (и ожидал) исключения, но я его не получаю. Вот как я это делаю:

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));

Какие еще варианты у меня есть с Validator, чтобы обеспечить проверку всех свойств рекурсивно?

Заранее большое спасибо.

52
задан Jehof 10 November 2011 в 20:01
поделиться