private bool ObjectEquals(Type propertyType, object value1, object value2, RefrencePropertyHandling handling) { switch (handling) { case RefrencePropertyHandling.EqualCompare: var refrenceEquals = NullReferenceEquals(value1, value2, out var containsNull); return(containsNull || refrenceEquals ? refrenceEquals : value1.Equals(value2)); case RefrencePropertyHandling.PropertyCompare: return(PropertyEquals(propertyType, value1, value2)); default: return(true); } }
private bool ObjectEquals(Type propertyType, object value1, object value2, RefrencePropertyHandling handling) { switch (handling) { case Schubert.RefrencePropertyHandling.EqualCompare: bool containsNull = false; bool refrenceEquals = PropertiesComparer.NullReferenceEquals(value1, value2, out containsNull); return(containsNull || refrenceEquals ? refrenceEquals : value1.Equals(value2)); case Schubert.RefrencePropertyHandling.PropertyCompare: return(this.PropertyEquals(propertyType, value1, value2)); default: return(true); } }