反射:
自定义属性:实现延迟编译 权限的延迟授予, 动态编译
元数据 查看元数据中的信息
PE文件 : 元数据存放在PE文件中 ,延迟编译都是对PE文件增加内容
TYPE:查看各种类型 的数据:方法,属性, 等信息 判断是不是int 泛型 等
动态构建任何东西:类 ,属性 方法 泛型 等等
程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。
使用 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 发现以下信息:参数的名称、数据类型、参数是输入参数还是输出参数,以及参数在方法签名中的位置等。
讲述一下动态构建程序集是一个不得了的事情:
例如 我们可以和用户一边交互一边创建程序集,用户选择自己需要的功能来为用户创建响应程序集
这样 不是用户受到的软件 其实 是一个活的 可以根据和用户交互 后 才 完成最后的编码
而以前 给用户的软件 就是 最后的 形式.
框架类:
元数据 程序集 PE 文件 自定义属性 反射 应用程序域 安全性 线程
只要问的话题能扯到框架就把所有的一切串起来,一个引一个,事件战术,
只要能一丝的联想到这些就往这方面靠拢