@@ -60,7 +60,7 @@ public abstract class SelfReferenceEquivalencyAssertionOptions<TSelf> : IEquival
60
60
private bool ignoreNonBrowsableOnSubject ;
61
61
private bool excludeNonBrowsableOnExpectation ;
62
62
63
- private bool compareRecordsByValue ;
63
+ private bool ? compareRecordsByValue ;
64
64
65
65
#endregion
66
66
@@ -176,7 +176,7 @@ IEnumerable<IMemberSelectionRule> IEquivalencyAssertionOptions.SelectionRules
176
176
177
177
bool IEquivalencyAssertionOptions . ExcludeNonBrowsableOnExpectation => excludeNonBrowsableOnExpectation ;
178
178
179
- public bool CompareRecordsByValue => compareRecordsByValue ;
179
+ public bool ? CompareRecordsByValue => compareRecordsByValue ;
180
180
181
181
EqualityStrategy IEquivalencyAssertionOptions . GetEqualityStrategy ( Type requestedType )
182
182
{
@@ -202,9 +202,9 @@ EqualityStrategy IEquivalencyAssertionOptions.GetEqualityStrategy(Type requested
202
202
{
203
203
strategy = EqualityStrategy . ForceEquals ;
204
204
}
205
- else if ( type . IsRecord ( ) )
205
+ else if ( type . IsRecord ( ) && ( compareRecordsByValue . HasValue || getDefaultEqualityStrategy is null ) )
206
206
{
207
- strategy = compareRecordsByValue ? EqualityStrategy . ForceEquals : EqualityStrategy . ForceMembers ;
207
+ strategy = compareRecordsByValue is true ? EqualityStrategy . ForceEquals : EqualityStrategy . ForceMembers ;
208
208
}
209
209
else
210
210
{
@@ -760,7 +760,7 @@ public override string ToString()
760
760
builder . AppendLine ( $ "- Compare tuples by their properties") ;
761
761
builder . AppendLine ( $ "- Compare anonymous types by their properties") ;
762
762
763
- if ( compareRecordsByValue )
763
+ if ( compareRecordsByValue is true )
764
764
{
765
765
builder . AppendLine ( "- Compare records by value" ) ;
766
766
}
0 commit comments