private static bool GetPropertyHash(PropertyInfo property, object obj, Action <MemberInfo, int> memberValues, ref int i) { if (BlockedTypes.IsBlocked(Utility.GetObjectMemberName(property))) { return(false); } if (BlockedTypes.IsBlocked(property.PropertyType)) { return(false); } MethodInfo method = property.GetGetMethod(); if (method == null) { return(false); } if (!Utility.CanAccessMember(property)) { return(false); } try { if (property.PropertyType.IsArray) { i = GetArrayID(property.GetValue(obj, null)); } else { i = GetObjectID(property.GetValue(obj, null)); } } catch (TargetException) { throw; } catch (Exception) { return(false); } memberValues?.Invoke(property, i); return(true); }
private static bool GetFieldHash(FieldInfo field, object obj, Action <MemberInfo, int> memberValues, ref int i) { if (BlockedTypes.IsBlocked(Utility.GetObjectMemberName(field))) { return(false); } if (BlockedTypes.IsBlocked(field.FieldType)) { return(false); } try { if (field.FieldType.IsArray) { i = GetArrayID(field.GetValue(obj)); } else { i = GetObjectID(field.GetValue(obj)); } } catch (TargetException) { throw; } catch (Exception) { return(false); } memberValues?.Invoke(field, i); return(true); }
private bool IsValid(MemberInfo info) { string objectMemberValue = Utility.GetObjectMemberName(info); return(!BlockedTypes.IsBlocked(objectMemberValue)); }