我有一个PagedModel类,它实现IEnumerable只返回ModelData,忽略分页数据.我还重写了Equals和GetHashCode,以允许比较两个PagedModel对象的ModelData,PageNumber和TotalPages以及PageSize.
这是问题所在
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!
Run Code Online (Sandbox Code Playgroud)
看起来NUnit调用它的内部EnumerableEqual方法来比较我的PagedModel而不是使用我提供的Equals方法!有没有办法覆盖这种行为,或者我是否必须编写自定义断言.