private static void ReflectionAppend( object lhs, object rhs, Type clazz, EqualsBuilder builder, bool useTransients) { var fields = clazz.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly); for (var i = 0; i < fields.Length && builder._isEqual; i++) { var f = fields[i]; //TODO:atrosin Revise:f.getName().indexOf('$') if (f.Name.IndexOf('$') == -1 && (useTransients || !IsTransient(f)) && !f.IsStatic) { try { builder.Append(f.GetValue(lhs), f.GetValue(rhs)); } catch (TargetException te) { throw new Exception("Unexpected TargetException", te); } }