【发布时间】:2011-03-28 16:52:19
【问题描述】:
我使用反射器进行搜索,但没有找到ValidationResult.MemberNames 应该包含多个值的情况。
所以,首先我想知道为什么 MS 必须这样做IEnumerable<string>,那么既然他们已经这样做了,我可以相信这个属性只会返回一个值吗?
更新
关于 DataAnnotations 验证系统,我发现更多的草率:
-
TryValidateProperty和TryValidateObject应该已经从 validationResults 参数中删除了错误,如果它们不再存在的话。 - ValidationResult 应该覆盖 Equals 和 GetHashCode。
- 为什么 ValidationResult.ErrorMessage 是可变的!?我无法自己构建 EqualityComparer!
- 如果 DataTypeAttribute 仅用于表示问题,为什么它会继承 ValidationAttribute,这只是误导,我不得不努力直到我明白(在反射之后)它不起作用。 MS 只是没有实现它。
名单还在继续。
【问题讨论】:
-
确实,ValidationResult 类很丑。然后具有讽刺意味的是,其名为 Success.. 的静态只读字段始终为空,因此绝对没有成功的机会。这个讨厌的 ValidationResult 类的一个实例总是一个失败。更不用说它不可序列化了..
标签: validation data-annotations validationattribute