2008-10-10 29 views

回答

2

3.5sp1在这里。

MSDN似乎暗示验证发生在强制之前。这与您发现的内容相符。

我自己做了,ValidateValueCallback来到CoerceValueCallback之前。我甚至在Reflector中读到源代码,并确认了相同的内容,尽管很难确切地了解所有可能的路径。

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

编辑:

显然,当你从CoerceValueCallback返回不同的值,则ValidateValueCallback再次呼吁新的价值。验证 - 强制-验证。

2

是的,我观察过同样的事情。那么看起来验证确实确实出现在强制之前。当一个新值被设置时,它被验证。如果强制更改/约束某个值,则必须再次进行验证。所以从技术上讲,如果我们把强制看作是另一个“集合”,验证总是在“集合”之后发生。

我猜其他网站/书籍正在作出一个假设,虽然是一个令人困惑的假设,验证具体发生在强制之后。这似乎发生在任何“设置”之后。

相关问题