/// <summary> /// Add all properties to a comparer. /// </summary> /// <param name="compare">Comparer to use</param> /// <param name="type">Type to use</param> /// <param name="flags">Binding flags to use, default to Public properties</param> public static void AutoCheck(this ICheckerCompare compare, Type type, BindingFlags flags = BindingFlags.Public) { // Only get directly declared properties - parent will have own checker var properties = type.GetProperties(flags | BindingFlags.DeclaredOnly | BindingFlags.Instance); compare.AutoCheck(properties); }
/// <summary> /// Add properties to a comparer. /// </summary> /// <param name="compare">Comparer to use</param> /// <param name="properties">Properties to add</param> public static void AutoCheck(this ICheckerCompare compare, IEnumerable <PropertyInfo> properties) { // Setup the comparisons foreach (var prop in properties) { // Exclude indexers var x = prop.GetIndexParameters(); if (x.GetLength(0) != 0) { continue; } compare.Compare(prop); } }