コード例 #1
0
 /// <summary>
 /// Adds a new comparer.
 /// </summary>
 /// <param name="comparer">The comparer to add.</param>
 public static void AddFieldValueEqualityComparer(IFieldValueEqualityComparer comparer)
 {
     if (EqualityComparers.All(o => o.GetType() != comparer.GetType()))
     {
         EqualityComparers.Add(comparer);
     }
 }
コード例 #2
0
        private static bool MatchesComparer(ref object lhsField, ref object rhsField, object lhsParent, object rhsParent, FieldInfo field, out IFieldValueEqualityComparer comparer)
        {
            comparer = null;
            foreach (var equalityComparer in EqualityComparers)
            {
                if (equalityComparer.CanCompare(ref lhsField, ref rhsField, lhsParent, rhsParent, field))
                {
                    comparer = equalityComparer;
                    break;
                }
            }

            return(comparer != null);
        }
コード例 #3
0
 private static bool MatchesComparer(object lhs, object rhs, out IFieldValueEqualityComparer comparer)
 {
     comparer = EqualityComparers.FirstOrDefault(c => c.CanCompare(lhs, rhs));
     return(comparer != null);
 }