通过反射获取类的信息

发布于:2022-12-14 ⋅ 阅读:(321) ⋅ 点赞:(0)
通过反射获取类的信息
        #region 通过反射获取类的信息
        static void Main( string [] args)
        {
            //typeof获取Type对象 用Type接收
            Type t = typeof (MyClass); //获取MyClass的Type
            //第二种方式  同上
            MyClass myClass = new MyClass();
            Type t2 = myClass.GetType();
            Console.WriteLine(t.Name); //通过t.name获取类名
            Console.WriteLine(t.Namespace); //通过t.namespace获取命名空间
            Console.WriteLine(t.Assembly); //通过t.Assembly获取程序集
            FieldInfo[] fis = t.GetFields(); //返回当前Type所有的公有字段       赋值给FieldInfo数组
            foreach (FieldInfo fi in fis) Console.WriteLine(fi.Name); //遍历FieldInfo中的字段名称
            PropertyInfo[] pis = t.GetProperties(); //返回当前Type所有的公有属性       赋值给PropertyInfo数组
            foreach (PropertyInfo pi in pis) Console.WriteLine(pi.Name); //遍历FieldInfo中的属性名称
            MethodInfo[] mis = t.GetMethods(); //返回当前Type所有的公有方法         赋值给MethodInfo数组
            Console.WriteLine( "*********************************" ); //华丽的分界线
            foreach (MethodInfo mi in mis) Console.WriteLine(mi.Name); //遍历MethodInfo中的方法名称
        }
        internal class MyClass
        {
            public int a;
            public int b;
            private int c;
            private int d;
            public string Name { get ; set ; }
            public string Name2 { get ; set ; }
            public void Test1() { }
            public void Test2() { }
        }
        #endregion