Example #1
0
        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);
        }
Example #2
0
        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());
        }