예제 #1
0
        public MethodInfo GetMethod(String name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers)
        {
            MemberInfo[] members = this.GetMember(name, bindingAttr);
            if (members.Length == 1)
            {
                return(members[0] as MethodInfo);
            }
            int methodCount = 0;

            foreach (MemberInfo member in members)
            {
                if (member.MemberType == MemberTypes.Method)
                {
                    methodCount++;
                }
            }
            if (methodCount == 0)
            {
                return(null);
            }
            MethodInfo[] methods = new MethodInfo[methodCount];
            methodCount = 0;
            foreach (MemberInfo member in members)
            {
                if (member.MemberType == MemberTypes.Method)
                {
                    methods[methodCount++] = (MethodInfo)member;
                }
            }
            if (binder == null)
            {
                binder = JSBinder.ob;
            }
            return((MethodInfo)binder.SelectMethod(bindingAttr, methods, types, modifiers));
        }
예제 #2
0
        public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers)
        {
            MemberInfo[] member = this.GetMember(name, bindingAttr);
            if (member.Length == 1)
            {
                return(member[0] as MethodInfo);
            }
            int num = 0;

            foreach (MemberInfo info in member)
            {
                if (info.MemberType == MemberTypes.Method)
                {
                    num++;
                }
            }
            if (num == 0)
            {
                return(null);
            }
            MethodInfo[] match = new MethodInfo[num];
            num = 0;
            foreach (MemberInfo info2 in member)
            {
                if (info2.MemberType == MemberTypes.Method)
                {
                    match[num++] = (MethodInfo)info2;
                }
            }
            if (binder == null)
            {
                binder = JSBinder.ob;
            }
            return((MethodInfo)binder.SelectMethod(bindingAttr, match, types, modifiers));
        }