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);
		}