Давайте предположим, что у меня есть два простых класса:
public class CustomerDetails
{
[Required]
public string Address
{
get;
set;
}
}
public class Customer
{
public Customer()
{
Details = new CustomerDetails();
}
[Required]
public string Name
{
get;
set;
}
public CustomerDetails Details
{
get;
private set;
}
}
Когда я пытаюсь вручную проверить класс Customer в консольном приложении следующим образом:
var customer = new Customer() { Name = "Conrad" };
var context = new ValidationContext(customer, null, null);
var results = new List<ValidationResult>();
Validator.TryValidateObject(customer, context, true);
Затем, хотя я и решил проверить все свойства экземпляра клиента, Validator просто проверяет свойство Name экземпляра клиента, но не свойство Address в Details.
Это по замыслу или я что-то здесь упускаю? Кроме того, если это предусмотрено проектом, то существует ли надежный способ ручной проверки полного графа объекта, украшенного атрибутами валидации, включая вложенные типы, вместо использования валидатора для всего графа объекта вручную?
Обратите внимание, что это тестируется в консольном приложении, а не в приложении ASP.NET MVC.
С уважением.