什么决定了 EntLib 验证规则的执行顺序:
鉴于以下情况:
<ValidatorComposition(CompositionType.And, Ruleset:="Default")> _
<NotNullValidator(MessageTemplate:="Transaction ID is required.", Ruleset:="Default")> _
<TypeConversionValidator(GetType(Int64), MessageTemplate:="Transaction ID must be numeric.", Ruleset:="Default")> _
<RangeValidator("0", RangeBoundaryType.Exclusive, "0", RangeBoundaryType.Ignore, MessageTemplate:="Transaction ID may not be 0.", Ruleset:="Default")> _
<StringLengthValidator(1, RangeBoundaryType.Inclusive, 19, RangeBoundaryType.Inclusive, MessageTemplate:="Transaction ID must be between 1 and 19 characters in length.", Ruleset:="Default")> _
当对象实例化中缺少 TransactionID 时,预计会出现以下附加错误字符串:
Transaction ID must be numeric.Transaction ID must be between 1 and 19 characters in length.Transaction ID may not be 0.Transaction ID is required.
但是,似乎每个错误的实际顺序有时会有所不同。出现相同的错误,但顺序不同。
我通过单元测试发现了这一点,我知道数据没有改变,曾经通过的测试现在失败了。
有没有人遇到过这个,并有一个解释?
谢谢。