Пример #1
0
        //  METHODS
        private void AddFields(Type reflectedType)
        {
            MemberInfo[] fieldInfoList = reflectedType.FindMembers(MemberTypes.Field,
                                                                   BindingFlags.Instance |
                                                                   BindingFlags.Public | BindingFlags.NonPublic |
                                                                   BindingFlags.SetField | BindingFlags.SetProperty, null, null);

            foreach (MemberInfo fieldInfo in fieldInfoList)
            {
                object[] attributeList = fieldInfo.GetCustomAttributes(typeof(InjectAttribute), true);
                if (attributeList.Length > 0)
                {
                    if (!Fields.Contains((FieldInfo)fieldInfo))
                    {
                        Fields.AddLast((FieldInfo)fieldInfo);
                    }
                }
            }

            if (reflectedType.BaseType != typeof(object))
            {
                AddFields(reflectedType.BaseType);
            }
        }