我正在使用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表单中,我想验证用户输入第一个值小于第二个值或第二个值大于第一个值。
答案 0 :(得分:1)
在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")