Catel.Reflection.TypeInfoExtensions.GetMembers C# (CSharp) Method

GetMembers() public static method

Gets the members.
The is null.
public static GetMembers ( this typeInfo, BindingFlags bindingFlags ) : System.Reflection.MemberInfo[]
typeInfo this The .
bindingFlags BindingFlags The binding flags.
return System.Reflection.MemberInfo[]
        public static MemberInfo[] GetMembers(this TypeInfo typeInfo, BindingFlags bindingFlags)
        {
            Argument.IsNotNull("typeInfo", typeInfo);

            var flattenHierarchy = ShouldFlattenHierarchy(bindingFlags);
            var source = typeInfo.DeclaredMembers.ToList();

            // 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 GetMembers(baseType.GetTypeInfo(), bindingFlags)
                                    select member);
                }
            }

            return (from x in source
                    select x).ToArray();
        }