我有我的实体设置与数据注释验证属性,我试图使用静态Validator类验证它,但我得到不同的例外,这不是正确的方法:
string _ValidateProperty(object instance, string propertyName)
{
var validationContext = new ValidationContext(instance, null, null);
validationContext.MemberName = propertyName;
var validationResults = new List<ValidationResult>();
var isValid = Validator.TryValidateProperty(instance, validationContext, validationResults);
if (isValid)
return string.Empty;
return validationResults.FirstOrDefault<ValidationResult>().ErrorMessage;
}
Run Code Online (Sandbox Code Playgroud)
wal*_*wal 12
您还没有说明Exception
您收到的内容,但是TryValidateProperty
当您传递特定属性的值时,您似乎正在将您的实例传递给该方法.
代替
Validator.TryValidateProperty(instance, validationContext, validationResults);
Run Code Online (Sandbox Code Playgroud)
尝试
Validator.TryValidateProperty(propertyValue, validationContext, validationResults);
Run Code Online (Sandbox Code Playgroud)
你将不得不传递propertyValue
给你的方法(或使用会慢的反射)
例如
_ValidateProperty(someObject, "Field1", someObject.Field1);
Run Code Online (Sandbox Code Playgroud)