C# 反射(Reflection)
反射(Reflection)可以在运行时获 得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。
反射用到的命名空间:
System.Reflection
System.Type
System.Reflection.Assembly
using System; using System.Reflection; namespace test { public class testReflectionTest { /// <summary> /// 反射名称 /// </summary> public string GetName() { return "张三"; } static void Main() { Type type = typeof(testReflectionTest); string name = type.Name;//获取当前成员的名称 string fullName = type.FullName;//获取类的全部名称不包括程序集 string nameSpace = type.Namespace;//获取该类的命名空间 var assembly = type.Assembly;//获取该类的程序集名 var module = type.Module;//获取该类型的模块名 var memberInfos = type.GetMembers();//得到所有公共成员 Console.WriteLine(name); Console.WriteLine(fullName); Console.WriteLine(nameSpace); Console.WriteLine(assembly); Console.WriteLine(module); Console.WriteLine(memberInfos); //获取当前执行代码的程序集 Assembly assem = Assembly.GetExecutingAssembly(); Console.WriteLine(assem.FullName); var types = assem.GetTypes();//程序集下所有的类 Console.WriteLine("程序集包含的类型:"); foreach (var item in types) { Console.WriteLine("类" + item.Name); } Console.ReadKey(); } } }
时间就像海绵里的水,只要你愿意挤,总还是有的——鲁迅