【发布时间】:2014-07-22 16:25:52
【问题描述】:
我正在尝试使用数据注释进行自定义验证。 试图制作属性,我遵循了这个问题: How to create Custom Data Annotation Validators
我的属性是这样的
internal class ExcludeDefaultAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
return false;
}
}
验证被调用:
internal static class TypeValidator
{
static public bool Validate(object item)
{
List<ValidationResult> results = new List<ValidationResult>();
ValidationContext context = new ValidationContext(item);
if (Validator.TryValidateObject(item, context, results))
{
return true;
}
else
{
string message = string.Format("Error validating item");
throw new TypeInvalidException(results, message);
}
}
}
所以,这就是问题所在。目前,我的自定义验证应始终返回 false。所以验证应该总是失败。但是,每当我尝试验证在字段上具有此属性的对象时,它都会通过验证,这表明我的自定义验证属性没有被评估。在我知道它实际运行之前,我不想在验证中创建任何实际逻辑。 我错过了什么吗?我所有的研究都表明我只需要从 ValidationAttribute 继承,但它不起作用。
【问题讨论】:
标签: c# validation data-annotations