Catel.Reflection.TypeInfoExtensions.GetFields C# (CSharp) Метод

GetFields() публичный статический Метод

Gets the fields.
The is null.
public static GetFields ( this typeInfo, BindingFlags bindingFlags ) : System.Reflection.FieldInfo[]
typeInfo this The .
bindingFlags BindingFlags The binding flags.
Результат System.Reflection.FieldInfo[]
        public static FieldInfo[] GetFields(this TypeInfo typeInfo, BindingFlags bindingFlags)
        {
            Argument.IsNotNull("typeInfo", typeInfo);

            var flattenHierarchy = ShouldFlattenHierarchy(bindingFlags);
            var source = flattenHierarchy ? typeInfo.AsType().GetRuntimeFields().ToList() : typeInfo.DeclaredFields.ToList();

            var includeStatics = Enum<BindingFlags>.Flags.IsFlagSet(bindingFlags, BindingFlags.Static);

            // TODO: This is a fix because static members are not included in FlattenHierarcy, remove when this is fixed in WinRT
            if (flattenHierarchy)
            {
                var baseType = typeInfo.BaseType;
                if ((baseType != null) && (baseType != typeof(object)))
                {
                    source.AddRange(from member in GetFields(baseType.GetTypeInfo(), bindingFlags)
                                    where member.IsStatic
                                    select member);
                }
            }

            return (from x in source
                    where x.IsStatic == includeStatics
                    select x).ToArray();
        }