C#反射机制
2014-05-13 18:01
155 查看
审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。
System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码
System.Reflection.Assembly
System.Reflection.MemberInfo
System.Reflection.EventInfo
System.Reflection.FieldInfo
System.Reflection.MethodBase
System.Reflection.ConstructorInfo
System.Reflection.MethodInfo
System.Reflection.PropertyInfo
System.Type
层次模型:
二:获取类型信息:
1 class MyClass 2 { 3 public string m; 4 public void test() { } 5 public int MyProperty { get; set; } 6 } 7 8 //获取类型信息 9 protected void Button1_Click(object sender, EventArgs e) 10 { 11 Type type = typeof(MyClass); 12 Response.Write("类型名:" + type.Name); 13 Response.Write("<br/>"); 14 Response.Write("类全名:" + type.FullName); 15 Response.Write("<br/>"); 16 Response.Write("命名空间名:" + type.Namespace); 17 Response.Write("<br/>"); 18 Response.Write("程序集名:" + type.Assembly); 19 Response.Write("<br/>"); 20 Response.Write("模块名:" + type.Module); 21 Response.Write("<br/>"); 22 Response.Write("基类名:" + type.BaseType); 23 Response.Write("<br/>"); 24 Response.Write("是否类:" + type.IsClass); 25 Response.Write("<br/>"); 26 Response.Write("类的公共成员:"); 27 Response.Write("<br/>"); 28 MemberInfo[] memberInfos = type.GetMembers();//得到所有公共成员 29 foreach (var item in memberInfos) 30 { 31 Response.Write(string.Format("{0}:{1}", item.MemberType, item)); 32 Response.Write("<br/>"); 33 } 34 }
三:获取程序集信息
/article/5750476.html