假设我有两个简单的类:
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;
}
}
当我尝试以这种方式在控制台应用程序中手动验证客户类时:
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 属性,而不是 Details 的 Address 属性。
这是设计使然还是我在这里遗漏了什么?此外,如果这是设计使然,那么是否有一种可靠的方法来手动验证用验证属性装饰的完整对象图,包括嵌套类型,而不是手动对整个对象图使用验证器?
请注意,这是在控制台应用程序中测试的,而不是在 ASP.NET MVC 应用程序中测试的。
亲切的问候。