【发布时间】:2013-04-11 21:27:05
【问题描述】:
我有一个用 C# 构建的简单工厂,它实例化和配置在 ASP.net 和 JavaScript 中构建的验证器。我想要一种方法来测试我是否不小心在同一个控件上设置了两次验证器(例如,有两个 RequiredValueValidators 不是一个好主意,可能会导致 ui/ux 问题),但我也希望确保保留使用相同构建机制但方式不同的验证器(例如两个使用不同 RE 的 RegularExpressionValidators,但不是两个使用相同 RE。)
我尝试了一些不同的可能技术,我将在下面详细说明这些技术 - 但本质上我需要一种技术来传递关于如何比较相同基本类型的两个验证器以辨别它们是否相等的描述(NB 'equal' 不是 'identical',它们可能有不同的 ID(等)但仍然做同样的工作。)在运行时可解释,并且我的 c# .dll 的其他区域实际上可以访问运行检查。
我的答案将是社区 wiki,其目的是让社区编辑/纠正/讨论我陷入的错误/陷阱,而不是仅仅因为最初不正确而被否决,所以让其他人不会遭受同样的命运。
【问题讨论】:
-
为什么不能用Equals()来比较?可能我没有正确理解你的问题
-
我看不到基类。
标签: c# .net equality predicate iequalitycomparer