我正在编写一个从ReactiveValidatedObject派生的视图模型。这允许我使用数据注释来触发视图上的验证,但我遇到了一个问题:验证规则的评估顺序似乎是随机的。
例如,如果属性是这样声明的(模型的字段是十进制,而方法验证器只是执行decimal.TryParse并检查该值是否为>= 0):
private string abc;
[ValidatesViaMethod(ErrorMessage = "Invalid", AllowNull = true]
[Required(ErrorMessage = "Required")]
public string Abc { /* ... */ }我有单元测试,以确保行为如下:
偶尔,我会在另一个文件中修改一些东西,运行所有的测试,这个测试就会失败。交换属性声明中属性的顺序将修复测试。
是否有任何方法来指定应用这些属性的顺序?
发布于 2011-11-18 07:30:40
我不相信有任何方法来指定顺序,这是反射返回它们的顺序。您可能需要对IsAbcValid进行编译,以检测null,并(错误地)将其标记为有效。
https://stackoverflow.com/questions/8173615
复制相似问题