Exemplo n.º 1
0
        public override MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr)
        {
            MemberInfo[]      members          = this.GetMembers(bindingAttr);
            List <MemberInfo> memberInfos      = new List <MemberInfo>();
            StringComparison  stringComparison = SignatureUtil.GetStringComparison(bindingAttr);

            MemberInfo[] memberInfoArray = members;
            for (int i = 0; i < (int)memberInfoArray.Length; i++)
            {
                MemberInfo memberInfo = memberInfoArray[i];
                if (name.Equals(memberInfo.Name, stringComparison) && (type == memberInfo.MemberType || type == MemberTypes.All))
                {
                    memberInfos.Add(memberInfo);
                }
            }
            return(memberInfos.ToArray());
        }
Exemplo n.º 2
0
        public override Type GetNestedType(string name, BindingFlags bindingAttr)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            StringComparison stringComparison = SignatureUtil.GetStringComparison(bindingAttr);

            Type[] nestedTypes = this.GetNestedTypes(bindingAttr);
            for (int i = 0; i < (int)nestedTypes.Length; i++)
            {
                Type type = nestedTypes[i];
                if (type.Name.Equals(name, stringComparison))
                {
                    return(type);
                }
            }
            return(null);
        }
Exemplo n.º 3
0
        public override FieldInfo GetField(string name, BindingFlags bindingAttr)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            StringComparison stringComparison = SignatureUtil.GetStringComparison(bindingAttr);

            FieldInfo[] fields = this.GetFields(bindingAttr);
            for (int i = 0; i < (int)fields.Length; i++)
            {
                FieldInfo fieldInfo = fields[i];
                if (fieldInfo.Name.Equals(name, stringComparison))
                {
                    return(fieldInfo);
                }
            }
            return(null);
        }
Exemplo n.º 4
0
        public override EventInfo GetEvent(string name, BindingFlags flags)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            StringComparison stringComparison = SignatureUtil.GetStringComparison(flags);

            EventInfo[] events = this.GetEvents(flags);
            for (int i = 0; i < (int)events.Length; i++)
            {
                EventInfo eventInfo = events[i];
                if (eventInfo.Name.Equals(name, stringComparison))
                {
                    return(eventInfo);
                }
            }
            return(null);
        }
Exemplo n.º 5
0
        internal static PropertyInfo GetPropertyImplHelper(MetadataOnlyCommonType type, string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
        {
            if (binder != null)
            {
                throw new NotSupportedException();
            }
            if (modifiers != null && (int)modifiers.Length != 0)
            {
                throw new NotSupportedException();
            }
            StringComparison stringComparison = SignatureUtil.GetStringComparison(bindingAttr);

            PropertyInfo[] properties = type.GetProperties(bindingAttr);
            for (int i = 0; i < (int)properties.Length; i++)
            {
                PropertyInfo propertyInfo = properties[i];
                if (propertyInfo.Name.Equals(name, stringComparison) && (!(returnType != null) || propertyInfo.PropertyType.Equals(returnType)) && MetadataOnlyTypeDef.PropertyParamTypesMatch(propertyInfo, types))
                {
                    return(propertyInfo);
                }
            }
            return(null);
        }