public static bool ContainsMember(this ICollection<MemberInfo> source, MemberInfo item) { return source.Count > 0 && (source.Contains(item) || (!item.DeclaringType.Equals(item.ReflectedType) && source.Contains(item.GetMemberFromDeclaringType())) || item.GetPropertyFromInterfaces().Any(source.Contains)); }
protected virtual bool DeclaredPolymorphicMatch(MemberInfo member, Func<MemberInfo, bool> declaredMatch) { return declaredMatch(member) || member.GetMemberFromDeclaringClasses().Any(declaredMatch) || member.GetPropertyFromInterfaces().Any(declaredMatch); }