没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
反射技术与设计模式
反射(Reflection)是.NET 中的重要机制,通过放射,可以在运行时获得.NET 中每一
个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构
造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型
了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译
时还不知道。
1、.NET 可执行应用程序结构
程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构。
应用程序结构分为应用程序域—程序集—模块—类型—成员几个层次,公共语言运行
库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以及控制
每个程序集中类型层次结构的内存布局。
程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集、模
块和类型的对象。我们可以使用反射动态地创建类型的实例,将类型绑定到现有对象或从
现有对象中获取类型,然后调用类型的方法或访问其字段和属性。反射通常具有以下用途。
(1)使用 Assembly 定义和加载程序集,加载在程序集清单中列出模块,以及从此程
序集中查找类型并创建该类型的实例。
(2)使用 Module 了解包含模块的程序集以及模块中的类等,还可以获取在模块上定
义的所有全局方法或其他特定的非全局方法。
(3)使用 ConstructorInfo 了解构造函数的名称、参数、访问修饰符(如 pulic 或
private)和实现详细信息(如 abstract 或 virtual)等。使用 Type 的 GetConstructors 或
GetConstructor 方法来调用特定的构造函数。
(4)使用 MethodInfo 了解方法的名称、返回类型、参数、访问修饰符(如 pulic 或
private)和实现详细信息(如 abstract 或 virtual)等。使用 Type 的 GetMethods 或
GetMethod 方法来调用特定的方法。
(5)使用 FiedInfo 了解字段的名称、访问修饰符(如 public 或 private)和实现详细
信息(如 static)等,并获取或设置字段值。
(6)使用 EventInfo 了解事件的名称、事件处理程序数据类型、自定义属性、声明类
型和反射类型等,添加或移除事件处理程序。
(7)使用 PropertyInfo 了解属性的名称、数据类型、声明类型、反射类型和只读或可
写状态等,获取或设置属性值。
资源评论
miss_my_god
- 粉丝: 31
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功