我正在编写一个源自ReactiveValidatedObject
. 这允许我使用数据注释来触发视图上的验证,但我遇到了一个问题:验证规则是以随机顺序进行评估的。
例如,如果属性是这样声明的(模型的字段是小数,并且方法验证器只是执行decimal.TryParse
并检查值是否 >= 0):
private string abc;
[ValidatesViaMethod(ErrorMessage = "Invalid", AllowNull = true]
[Required(ErrorMessage = "Required")]
public string Abc { /* ... */ }
我有确保行为如下的单元测试:
- 如果该字段为空白,则错误应为“必填”。
- 如果该字段包含无法解析的内容,则错误应为“无效”。
有时,我会更改另一个文件中的某些内容,运行所有测试,但这个会失败。在属性声明中交换属性的顺序可以修复测试。
有没有办法指定这些属性的应用顺序?