我正在这样使用PropertyComparisonValidatorAttribute
:
[PropertyComparisonValidator("Last", ComparisonOperator.LessThan)]
public int First
{
[...]
}
[PropertyComparisonValidator("First", ComparisonOperator.GreaterThan)]
public int Last
{
[...]
}
但是,当需要对其进行验证时,出现以下异常:
A validation attribute of type PropertyComparisonValidatorAttribute cannot be used to validate values
我不知道有任何其他方法可以根据另一个属性的值来验证一个属性。明确地说,在我的XAML表单中,我想验证用户是否输入了小于第二值的第一值或大于第一值的第二值。
最佳答案
在将自定义验证属性与ASP.NET WebAPI一起使用时,我遇到了类似的问题。
可以通过在您的验证属性中直接定义规则集来解决。
public class MyClass
{
[PropertyComparisonValidator("Last", ComparisonOperator.LessThan, Ruleset="Default")]
public int First
{
[...]
}
[PropertyComparisonValidator("First", ComparisonOperator.GreaterThan, Ruleset="Default")]
public int Last
{
[...]
}
}
然后,当您需要验证对象时,将规则集作为的参数来验证方法:
MyClass target = new MyClass();
// Fill your target with data.
ValidationResults result = Microsoft.Practices.EnterpriseLibrary.Validation.Validation.Validate<MyClass>(target, "Default")
关于c# - 类型为PropertyComparisonValidatorAttribute的验证属性不能用于验证值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22692103/