public PropertyInfo GetProperty(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers) { MemberInfo[] members = this.GetMember(name, bindingAttr); if (members.Length == 1) { return(members[0] as PropertyInfo); } int propertyCount = 0; foreach (MemberInfo member in members) { if (member.MemberType == MemberTypes.Property) { propertyCount++; } } if (propertyCount == 0) { return(null); } PropertyInfo[] properties = new PropertyInfo[propertyCount]; propertyCount = 0; foreach (MemberInfo member in members) { if (member.MemberType == MemberTypes.Property) { properties[propertyCount++] = (PropertyInfo)member; } } if (binder == null) { binder = JSBinder.ob; } return((PropertyInfo)binder.SelectProperty(bindingAttr, properties, returnType, types, modifiers)); }
public PropertyInfo GetProperty(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers) { MemberInfo[] member = this.GetMember(name, bindingAttr); if (member.Length == 1) { return(member[0] as PropertyInfo); } int num = 0; foreach (MemberInfo info in member) { if (info.MemberType == MemberTypes.Property) { num++; } } if (num == 0) { return(null); } PropertyInfo[] match = new PropertyInfo[num]; num = 0; foreach (MemberInfo info2 in member) { if (info2.MemberType == MemberTypes.Property) { match[num++] = (PropertyInfo)info2; } } if (binder == null) { binder = JSBinder.ob; } return(binder.SelectProperty(bindingAttr, match, returnType, types, modifiers)); }