public static List <Type> GetTypePropertys(object obj)
        {
            var type_ = obj.GetType();

            PropertyInfo[]      pia_ = type_.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
            List <PropertyInfo> pis_ = new List <PropertyInfo>(pia_);

            List <Type> fins_ = new List <Type>();

            pis_.ForEach(x => fins_.Add(NonPublic.ToType(obj, x)));
            return(fins_);
        }
        public static List <string> GetFields(object obj)
        {
            var type_ = obj.GetType();

            FieldInfo[]      fia_ = type_.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
            List <FieldInfo> fis_ = new List <FieldInfo>(fia_);

            List <string> fns_ = new List <string>();

            fis_.ForEach(x =>
            {
                fns_.Add(NonPublic.ToName(obj, x));
            });
            return(fns_);
        }
        public static List <object> GetObjectFields(object obj)
        {
            var type_ = obj.GetType();

            FieldInfo[]      fia_ = type_.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
            List <FieldInfo> fis_ = new List <FieldInfo>(fia_);

            List <object> fios_ = new List <object>();

            fis_.ForEach(x =>
            {
                if (x.CustomAttributes.ToList().Count == 0)
                {
                    fios_.Add(NonPublic.ToObject(obj, x));
                }
            });
            return(fios_);
        }
        public static List <NonPublic> GetNonPublicPropertys(object obj)
        {
            var type_ = obj.GetType();

            PropertyInfo[]      pia_ = type_.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
            List <PropertyInfo> pis_ = new List <PropertyInfo>(pia_);

            List <NonPublic> np_ = new List <NonPublic>();

            pis_.ForEach(x =>
            {
                NonPublic y = new NonPublic
                {
                    npName   = NonPublic.ToName(obj, x),
                    npObject = NonPublic.ToObject(obj, x),
                    npType   = NonPublic.ToType(obj, x)
                };
                np_.Add(y);
            });
            return(np_);
        }
        public static List <NonPublic> GetNonPublicFields(object obj)
        {
            var type_ = obj.GetType();

            FieldInfo[]      fia_ = type_.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
            List <FieldInfo> fis_ = new List <FieldInfo>(fia_);

            List <NonPublic> np_ = new List <NonPublic>();

            fis_.ForEach(x =>
            {
                if (x.CustomAttributes.ToList().Count == 0)
                {
                    NonPublic y = new NonPublic
                    {
                        npName   = NonPublic.ToName(obj, x),
                        npObject = NonPublic.ToObject(obj, x),
                        npType   = NonPublic.ToType(obj, x)
                    };
                    np_.Add(y);
                }
            });
            return(np_);
        }