から派生したビューモデルを書いていますReactiveValidatedObject
。これにより、データアノテーションを使用してビューの検証をトリガーできますが、問題が発生しました。検証ルールはランダムな順序で評価されます。
たとえば、プロパティが次のように宣言されている場合(モデルのフィールドは小数であり、メソッドバリデーターdecimal.TryParse
は値が0以上であるかどうかを確認します)。
private string abc;
[ValidatesViaMethod(ErrorMessage = "Invalid", AllowNull = true]
[Required(ErrorMessage = "Required")]
public string Abc { /* ... */ }
動作が次のとおりであることを確認する単体テストがあります。
- フィールドが空白の場合、エラーは「必須」である必要があります。
- フィールドに解析されないものがある場合、エラーは「無効」である必要があります。
ときどき、別のファイルで何かを変更し、すべてのテストを実行すると、これは失敗します。プロパティ宣言の属性の順序を入れ替えると、テストが修正されます。
これらの属性が適用される順序を指定する方法はありますか?