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