我正在写一个来自ReactiveValidatedObject
的视图模型。这使我可以使用数据注释来触发对视图的验证,但是我遇到了一个问题:验证规则以似乎是随机顺序的方式进行评估。数据注释的确定性评估顺序?
例如,如果该属性声明如下(模型的字段是一个小数,并且该方法验证只是做decimal.TryParse
,并检查该值是否> = 0):
private string abc;
[ValidatesViaMethod(ErrorMessage = "Invalid", AllowNull = true]
[Required(ErrorMessage = "Required")]
public string Abc { /* ... */ }
我有单元测试,以确保行为如下:
- 如果该字段为空,错误应为“必需”。
- 如果该字段有不解析的内容,则该错误应为“无效”。
有时候,我会在另一个文件中改变一些东西,运行所有的测试,并且这个失败。交换属性声明中属性的顺序可以修复测试。
有什么方法可以指定这些属性应用于哪个顺序?
哇,你发现了一个新的和有趣的方式来标记到标题中!恭喜!另外,在规范中我没有知道任何属性都有秩序。 – Will