Esempio n. 1
0
        // Token: 0x06001783 RID: 6019 RVA: 0x0006F488 File Offset: 0x0006D688
        public static List <MemberInfo> GetFieldsAndProperties(Type type, BindingFlags bindingAttr)
        {
            List <MemberInfo> list = new List <MemberInfo>();

            list.AddRange(Class_514.GetFields(type, bindingAttr));
            list.AddRange(Class_514.GetProperties(type, bindingAttr));
            List <MemberInfo> list2 = new List <MemberInfo>(list.Count);

            foreach (IGrouping <string, MemberInfo> source in from m in list
                     group m by m.Name)
            {
                int num = source.Count <MemberInfo>();
                IList <MemberInfo> list3 = source.ToList <MemberInfo>();
                if (num == 1)
                {
                    list2.Add(list3.First <MemberInfo>());
                }
                else
                {
                    IList <MemberInfo> list4 = new List <MemberInfo>();
                    foreach (MemberInfo memberInfo in list3)
                    {
                        if (list4.Count == 0)
                        {
                            list4.Add(memberInfo);
                        }
                        else if (!Class_514.IsOverridenGenericMember(memberInfo, bindingAttr) || memberInfo.Name == "Item")
                        {
                            list4.Add(memberInfo);
                        }
                    }
                    list2.AddRange(list4);
                }
            }
            return(list2);
        }