2008-10-10 60 views

回答

2

3.5sp1在這裏。

MSDN似乎暗示驗證發生在強制之前。這與您發現的內容相符。

我自己做了,ValidateValueCallback來到CoerceValueCallback之前。我甚至在Reflector中讀到源代碼,並確認了相同的內容,儘管很難確切地瞭解所有可能的路徑。

有趣。我想知道這是否是早期版本中的其他方法。

編輯:

顯然,當你從CoerceValueCallback返回不同的值,則ValidateValueCallback再次呼籲新的價值。驗證 - 強制-驗證。

2

是的,我觀察過同樣的事情。那麼看起來驗證確實確實出現在強制之前。當一個新值被設置時,它被驗證。如果強制更改/約束某個值,則必須再次進行驗證。所以從技術上講,如果我們把強制看作是另一個「集合」,驗證總是在「集合」之後發生。

我猜其他網站/書籍正在作出一個假設,雖然是一個令人困惑的假設,驗證具體發生在強制之後。這似乎發生在任何「設置」之後。

相關問題