我用以下方式装饰了一个班级:
[Required(ErrorMessage = "Price is required.")]
public decimal Price { get; set; }
但是在用代码验证它时:
for each (PropertyInfo prop in Me.GetType().GetProperties())
{
if (prop.GetIndexParameters().Length = 0)
{
for each (ValidationAttribute validatt in prop.GetCustomAttributes(GetType(ValidationAttribute), True))
{
if (!validatt.IsValid(prop.GetValue(Me, Nothing))
{
retval.Add(New PropertyValidationError(prop.Name, string.Format("There is a problem with the {0} property. It is flagged with the {1}", prop.Name, validatt.GetType.Name), validatt.ErrorMessage));
}
}
}
}
我发现 的值0
被视为满足“要求”,这不是我想要的(事实上,我想允许除零以外的任何值) - 是我的验证代码做错了事,还是有没有一种方法可以使用带有 a 的装饰,但ValidationAttribute
对于值类型的默认值会失败?