首页 / 软件开发 / C# / C#反射命名空间浅析
C#反射命名空间浅析2011-04-04 博客园 LinderMan学习C#反射命名空间之前我们来看看C#反射的概念,反射是一个运行库类型发现的过 程。 通过反射可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类 型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的 参数和其他相关信息如基类、命名空间、数据清单等。C#反射命名空间详细介绍:1.System.Reflection命名空间内的各类型(1) Assembly通过它可以加载、了解和操纵一个程序集(2) AssemblyName 通过它可以找到大量隐藏在程序集的身份中的信息,如版本信息、 区域信息等(3) EventInfo 事件的信息(4) FieldInfo 字段的信息(5) MethodInfo 方法的信息(6) ParameterInfo 参数的信息(7) PropertyInfo 属性的信息(8) MemberInfo 是抽象基类,为 EventInfo、FieldInfo 、MethodInfo、 PropertyInfo等类型定义了公共的行为。(9) Module 用来访问带有多文件程序集的给定模块2.System.Type类System.Type支持的成员可以分为这样几类(1) Is*** 用来检查一个类型的元数据,如IsAbstract、IsClass、IsValueType 等等(2) Get*** 用来从类型得到指定项目,如GetEvent()得到类型的一个指定的事件 (EventInfo)。 另外,这些方法都有一个单数版本和一个复数版本。如GetEvent()对应 有一个复数版 本GetEvents(), 该方法返回一个相关的EventInfo数组(3) FindMembers() 根据查询条件返回一个MemberInfo类型的数组(4)GetType() 该静态方法根据一个字符串名称返回一个Type实例(5)InvokeMember() 对给定项目进行晚期绑定3.得到一个Type类型实例的三种方法因为Type是一个抽象类,所以不能直接使用new关键字创建一个Type对象(1)使用System.Object.GetType()Person pe=new Person();
//---------定义pe为person类的一个对象
Type t=pe.GetType();