// methods public IEqualityComparer CreateComparer(Type valueType, IEqualityComparerSource source) { if (OverridesEquals(valueType)) { return(new EqualsEqualityComparer()); } return(_next.CreateComparer(valueType, source)); }
// methods public IEqualityComparer CreateComparer(Type valueType, IEqualityComparerSource source) { foreach (var implementedInterface in valueType.GetTypeInfo().GetInterfaces()) { if (implementedInterface == typeof(IEnumerable)) { return(new EnumerableEqualityComparer(source)); } } return(_next.CreateComparer(valueType, source)); }