我正在寫一個來自ReactiveValidatedObject
的視圖模型。這使我可以使用數據註釋來觸發對視圖的驗證,但是我遇到了一個問題:驗證規則以似乎是隨機順序的方式進行評估。數據註釋的確定性評估順序?
例如,如果該屬性聲明如下(模型的字段是一個小數,並且該方法驗證只是做decimal.TryParse
,並檢查該值是否> = 0):
private string abc;
[ValidatesViaMethod(ErrorMessage = "Invalid", AllowNull = true]
[Required(ErrorMessage = "Required")]
public string Abc { /* ... */ }
我有單元測試,以確保行爲如下:
- 如果該字段爲空,錯誤應爲「必需」。
- 如果該字段有不解析的內容,則該錯誤應爲「無效」。
有時候,我會在另一個文件中改變一些東西,運行所有的測試,並且這個失敗。交換屬性聲明中屬性的順序可以修復測試。
有什麼方法可以指定這些屬性應用於哪個順序?
哇,你發現了一個新的和有趣的方式來標記到標題中!恭喜!另外,在規範中我沒有知道任何屬性都有秩序。 – Will