我希望能够使用.NET 4中的DataAnnotations验证不同上下文中的对象。
例如:如果我有一个带有这些带注释属性的类
[Required]
public string Name { get; set; }
[Required]
public string PhoneNumber { get; set; }
[Required]
public string Address { get; set; }
我希望能够做类似
的事情bool namePhoneValid = Validator.TryValidateObject(entity, contextNamePhone, results1);
bool allValid = Validator.TryValidateObject(entity, contextAll, results2);
其中contextNamePhone仅验证名称和电话,而contextAll验证所有属性(在这种情况下为姓名,电话和地址)。
这可能吗?如何构建验证上下文?还有其他/更聪明的方法吗?
答案 0 :(得分:1)
您可以向您的类添加自定义属性,使用类型反射在运行时获取属性内容,然后编写您自己的验证器以根据不同条件验证属性。