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