C#反射(Assembly.Load及Assembly.Load.CreateInstance方法介绍)
在设计模式, 用到了反射,顺便也研究了一下C#的反射机制。收集了网上的一些资料和我个人的理解,供大家学习 在 C# 中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系 : System.Reflection 命名空间 (1) AppDomain: 应用程序域,可以将其理解为一组程序集的逻辑容器 (2) Assembly: 程序集类 (3) Module: 模块类 (4) Type: 使用反射得到类型信息的最核心的类 他们之间是一种从属关系,也就是说,一个 AppDomain 可以包含 N 个 Assembly, 一个 Assembly 可以包含 N 个 Module, 而一个 Module 可以包含 N 个 Type. AppDomain 这个类我们等下再来讲解。我们先关注 Assembly 个类, 在程序中,如果我们要动态加载一个程序集怎么办呢?有几种方式可以使用,分别是 Load,LoadFrom 和 LoadWithPartialName 三个 Assembly 的静态方法 . 先来讲解 Assembly.Load 方法,该方法会有多个重载版本,其中一个就是提供程序集的 详细 信息,即程序集的标识,包括程序集的名称,版本,区域信息,公有密钥标记 , 全部都是以一个字符串的形式提供,例如 :"MyAssembly,Version=1.0.0.0, culture=zh