C#的反射详解(一)

转载 2007年09月22日 00:48:00
 
1。反射概述

公共语言运行库加载器管理应用程序域。这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。

程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。反射通常具有以下用途:

  • 使用 Assembly 定义和加载程序集,加载在程序集清单中列出的模块,以及从此程序集中查找类型并创建该类型的实例。
  • 使用 Module 了解如下的类似信息:包含模块的程序集以及模块中的类等。您还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。
  • 使用 ConstructorInfo 了解如下的类似信息:构造函数的名称、参数、访问修饰符(如 public private)和实现详细信息(如 abstract virtual)等。使用 Type GetConstructors GetConstructor 方法来调用特定的构造函数。
  • 使用 MethodInfo 来了解如下的类似信息:方法的名称、返回类型、参数、访问修饰符(如 public private)和实现详细信息(如 abstract virtual)等。使用 Type GetMethods GetMethod 方法来调用特定的方法。
  • 使用 FieldInfo 来了解如下的类似信息:字段的名称、访问修饰符(如 public private)和实现详细信息(如 static)等;并获取或设置字段值。
  • 使用 EventInfo 来了解如下的类似信息:事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等;并添加或移除事件处理程序。
  • 使用 PropertyInfo 来了解如下的类似信息:属性的名称、数据类型、声明类型、反射类型和只读或可写状态等;并获取或设置属性值。
  • 使用 ParameterInfo 来了解如下的类似信息:参数的名称、数据类型、参数是输入参数还是输出参数,以及参数在方法签名中的位置等。

System.Reflection.Emit 命名空间的类提供了一种特殊形式的反射,使您能够在运行时构造类型。

反射也可用于创建称作类型浏览器的应用程序,它使用户能够选择类型,然后查看有关选定类型的信息。

反射还有其他一些用途。JScript 等语言编译器使用反射来构造符号表。System.Runtime.Serialization 命名空间中的类使用反射来访问数据并确定要持久保存的字段。System.Runtime.Remoting 命名空间中的类通过序列化来间接地使用反射。 

关于C#的反射机制详解

  • 2013年06月19日 13:39
  • 33KB
  • 下载

[整理]C#反射(Reflection)详解

[整理]C#反射(Reflection)详解 本人理解: 装配件:Assembly(程序集) 晚绑定:后期绑定 MSDN:反射(C# 编程指南) -----------------原...

详解C#中的反射 .

反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况...

[整理]C#反射(Reflection)详解

本人理解: 装配件:Assembly(程序集) 晚绑定:后期绑定 MSDN:反射(C# 编程指南) -----------------原文如下-------- 1、 什么是反射 2、 命名...

详解C#编程中的反射机制与方法

Reflection,中文翻译为反射。这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射...

详解C#中的反射(笔记)

原文地址 : 详解c#中的反射 反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1、B超:大家体检的时候大概都做过B超吧,B超可以透...
  • big_di
  • big_di
  • 2016年02月18日 14:05
  • 250

C# Assembly.Load 反射使用详解

在C#中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系:  System.Reflection命名空间 (1)  AppDomain:应用程序域,可以将其理解为一组程序集的逻辑容器 (...

c# 反射使用及详解

获取成员变量的方式有两种typeof(T).GetPropertys(BindingFlags 参数) // 这中方式获取的成员变量一定要是实现了 get set 存储器的变量typeof(T).Ge...

详解C#中的反射

反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的...

C# 反射机制详解

反射的定义:审查元数据并收集关於它的类型信息的能力,元数据(编辑后的基本数据单元)就是一大堆表,编译器会创建一个类定义表,一个字段定义表,一个方法定义表等,System.Reflection命名空间包...
  • taoerit
  • taoerit
  • 2016年11月24日 11:29
  • 254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#的反射详解(一)
举报原因:
原因补充:

(最多只允许输入30个字)