我有一个 PagedModel 类,它实现 IEnumerable 只返回 ModelData,忽略分页数据。我还重写了 Equals 和 GetHashCode,以允许通过它们的 ModelData、PageNumber、TotalPages 和 PageSize 来比较两个 PagedModel 对象。
这就是问题所在
Dim p1 As New PagedModel() With {
.PageNumber = 1,
.PageSize = 10,
.TotalPages = 10,
.ModelData = GetModelData()
}
Dim p2 As New PagedModel() With {
.PageNumber = 1,
.PageSize = 10,
.TotalPages = 10,
.ModelData = GetModelData()
}
p1.Equals(p2) =====> True
Assert.AreEqual(p1, p2) ======> False!
看起来 NUnit 正在调用它的内部 EnumerableEqual 方法来比较我的 PagedModel,而不是使用我提供的 Equals 方法!有什么方法可以覆盖这种行为,还是我必须编写一个自定义断言。