Exemplo n.º 1
0
        public static List <MemberInfo> GetFieldsAndProperties(Type type, BindingFlags bindingAttr)
        {
            List <MemberInfo> list1 = new List <MemberInfo>();

            CollectionUtils.AddRange((IList)list1, (IEnumerable)ReflectionUtils.GetFields(type, bindingAttr));
            CollectionUtils.AddRange((IList)list1, (IEnumerable)ReflectionUtils.GetProperties(type, bindingAttr));
            List <MemberInfo> list2 = new List <MemberInfo>(list1.Count);

            foreach (IGrouping <string, MemberInfo> grouping in Enumerable.GroupBy <MemberInfo, string>((IEnumerable <MemberInfo>)list1, (Func <MemberInfo, string>)(m => m.Name)))
            {
                int num = Enumerable.Count <MemberInfo>((IEnumerable <MemberInfo>)grouping);
                IList <MemberInfo> list3 = (IList <MemberInfo>)Enumerable.ToList <MemberInfo>((IEnumerable <MemberInfo>)grouping);
                if (num == 1)
                {
                    list2.Add(Enumerable.First <MemberInfo>((IEnumerable <MemberInfo>)list3));
                }
                else
                {
                    IEnumerable <MemberInfo> collection = Enumerable.Where <MemberInfo>((IEnumerable <MemberInfo>)list3, (Func <MemberInfo, bool>)(m =>
                    {
                        if (ReflectionUtils.IsOverridenGenericMember(m, bindingAttr))
                        {
                            return(m.Name == "Item");
                        }
                        else
                        {
                            return(true);
                        }
                    }));
                    list2.AddRange(collection);
                }
            }
            return(list2);
        }
Exemplo n.º 2
0
        private static void GetChildPrivateFields(IList <MemberInfo> initialFields, Type targetType, BindingFlags bindingAttr)
        {
            if ((bindingAttr & BindingFlags.NonPublic) == BindingFlags.Default)
            {
                return;
            }
            BindingFlags bindingAttr1 = ReflectionUtils.RemoveFlag(bindingAttr, BindingFlags.Public);

            while ((targetType = TypeExtensions.BaseType(targetType)) != null)
            {
                IEnumerable <MemberInfo> collection = Enumerable.Cast <MemberInfo>((IEnumerable)Enumerable.Where <FieldInfo>((IEnumerable <FieldInfo>)targetType.GetFields(bindingAttr1), (Func <FieldInfo, bool>)(f => f.IsPrivate)));
                CollectionUtils.AddRange <MemberInfo>(initialFields, collection);
            }
        }
Exemplo n.º 3
0
 public static void AddRange <T>(this IList <T> initial, IEnumerable collection)
 {
     ValidationUtils.ArgumentNotNull((object)initial, nameof(initial));
     CollectionUtils.AddRange <T>(initial, collection.Cast <T>());
 }
Exemplo n.º 4
0
 public static void AddRange(this IList initial, IEnumerable collection)
 {
     ValidationUtils.ArgumentNotNull((object)initial, "initial");
     CollectionUtils.AddRange <object>((IList <object>) new ListWrapper <object>(initial), Enumerable.Cast <object>(collection));
 }