public static RootComparer GetRootComparer() { lock (locker) { if (rootComparer == null) { rootComparer = BuildRootComparer(); } } return(rootComparer); }
private static RootComparer BuildRootComparer() { rootComparer = new RootComparer(); rootComparer.TypeComparers = new List <BaseTypeComparer>(); rootComparer.TypeComparers.Add(new HashSetComparer(rootComparer)); rootComparer.TypeComparers.Add(new ListComparer(rootComparer)); rootComparer.TypeComparers.Add(new EnumComparer(rootComparer)); rootComparer.TypeComparers.Add(new StringComparer(rootComparer)); rootComparer.TypeComparers.Add(new SimpleTypeComparer(rootComparer)); rootComparer.TypeComparers.Add(new TimespanComparer(rootComparer)); rootComparer.TypeComparers.Add(new ClassComparer(rootComparer)); //類比對應該放在最後 return(rootComparer); }
public StringComparer(RootComparer rootComparer) : base(rootComparer) { }
public TimespanComparer(RootComparer rootComparer) : base(rootComparer) { }
public ClassComparer(RootComparer rootComparer) : base(rootComparer) { propertyComparer = new PropertyComparer(rootComparer); }
public EnumerableComparer(RootComparer rootComparer) : base(rootComparer) { listComparer = new ListComparer(rootComparer); }
protected BaseTypeComparer(RootComparer rootComparer) { RootComparer = rootComparer; }
public ListComparer(RootComparer rootComparer) : base(rootComparer) { }
public SimpleTypeComparer(RootComparer rootComparer) : base(rootComparer) { }
public EnumeratorComparer(RootComparer comparer, CompareParms parms) { rootComparer = comparer; compareParms = parms; }
public HashSetComparer(RootComparer rootComparer) : base(rootComparer) { }
public PropertyComparer(RootComparer comparer) { rootComparer = comparer; }