欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > C# >内容正文

C#

c#反射(1)

发布时间:2025/4/16 C# 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 c#反射(1) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

反射可以读取程序集中代码的内容,程序集一般指(dll或exe文件)。

 

反射中Type类,这个类太强大了,可以获取到另一个类的名称,命名空间,程序集,以及这个类中的字段,属性,方法。可以方便我们查看某个类的方法,属性,字段。

public void Test1(){Person per = new Person();Type TypeObj = per.GetType();Console.WriteLine(TypeObj.Name); //反射类的名称Console.WriteLine(TypeObj.Namespace); //反射类的命名空间Console.WriteLine(TypeObj.Assembly); //反射类所在的程序集 Console.WriteLine(TypeObj.IsPublic); //反射类是否为公共Console.WriteLine(TypeObj.IsSealed); //反射类是否密封 }public void Test2(){Person per = new Person();Type TypeObj = per.GetType();FieldInfo[] infor = TypeObj.GetFields(); //获取类中的字段foreach (FieldInfo item in infor){Console.WriteLine(item.Name);}Console.WriteLine("--------------");MethodInfo[] MeFor = TypeObj.GetMethods(); //获取类中的方法foreach (MethodInfo item in MeFor){Console.WriteLine(item.Name);}Console.WriteLine("--------------");PropertyInfo[] ProFor = TypeObj.GetProperties(); //获取类中的属性foreach (PropertyInfo item in ProFor){Console.WriteLine(item.Name);}Console.WriteLine("--------------");}

 

一些运行技巧:Console.ReadLine()作用

从控制台中读取用户输入的一行字符串,很多人添加ReadLine()是为了让程序运行完了停下来,避免控制台窗口被关掉。

 

Assembly获取类的方法

public void Test1(){Person per = new Person();//得到程序集Assembly ass = per.GetType().Assembly;Console.WriteLine(ass.FullName);//通过程序集得到所有的类Type[] typArray = ass.GetTypes();foreach (Type item in typArray){Console.WriteLine(item.Name);}}public void Test2(){Assembly assObj = Assembly.LoadFrom(@"");//通过程序集得到所有的类Type[] typArray = assObj.GetTypes();foreach (Type item in typArray){Console.WriteLine(item.Name);}}

 

转载于:https://www.cnblogs.com/Optimism/p/10472744.html

总结

以上是生活随笔为你收集整理的c#反射(1)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。