private static bool MemberFilterByFindMemberInfo(MemberInfo objMemberInfo, Object objSearch) { FindMemberInfo info = (FindMemberInfo)objSearch; if (!MemberNameIsMatch(objMemberInfo, info.Names)) { return(false); } if (objMemberInfo is MethodInfo) { MethodInfo method = objMemberInfo as MethodInfo; if (method.ReturnType == typeof(void)) { return(false); } if (!MemberGenericIsMatch(method, info.GenericCount)) { return(false); } //if (!MemberParameterIsMatch(method.GetParameters(), info.ArgTypes)) return false; } return(true); }
private static MemberInfo[] FindMemberFromInterface(Type type, MemberTypes memberTypes, BindingFlags bindingFlags, MemberFilter filter, FindMemberInfo info) { List <MemberInfo> list = new List <MemberInfo>(); foreach (Type tf in type.GetInterfaces()) { MemberInfo[] members = tf.FindMembers(memberTypes, bindingFlags, filter, info); if (members.Length > 0) { list.AddRange(members.AsEnumerable()); } } return(list.ToArray()); }