Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }