Assembly:封装程序集信息,可以动态加载程序集
获取Assembly的几种方式:
1、var ass1 = Assembly.Load("ClassLibrary1");//项目中已引用此程序集,可以使用这种方法
2、var ass2 = Assembly.LoadFrom("c://xxxx.dll");//根据程序集全路径获取Assembly
3、var ass3 = personType.Assembly;//指定Type所在的Assembly
4、var ass4 = Assembly.GetAssembly(personType);//同上
5、var ass5 = Assembly.GetExecutingAssembly();//包含程序入口的程序集
Type:封装反射得到的类信息,也可以通过它反射创建一个对象
获取Type对象的几种方式:
1、assembly.GetType("反射Demo.Person"); 2、Type.GetType("反射Demo.Person"); 3、typeof(Person); 4、new Person().GetType();
Type对象的常用属性:
animalType.IsArray//是否是数组类型 animalType.IsImport//是否是COM类型库导入 animalType.IsVisible//是否可由程序集之外的代码访问 animalType.IsNestedPublic//如果类是嵌套的并且声明为公共的,则为 true;否则为 false。 animalType.IsNestedAssembly//是否是嵌套的并且只能在它自己的程序集内可见。 animalType.IsNestedFamily//是否是嵌套的并且只能在它自己的家族内可见。 animalType.IsNested//嵌套在另一个类型内 animalType.Namespace//命名空间 animalType.BaseType//直接继承Type animalType.AssemblyQualifiedName//程序集限定名 animalType.IsSealed//是否声明为密封的 animalType.FullName//获取该类型的完全限定名称,包括其命名空间,但不包括程序集。 animalType.Assembly//获取在其中声明该类型的 System.Reflection.Assembly animalType.Module//获取在其中定义当前 System.Type 的模块 (DLL)。 animalType.GUID//获取与 System.Type 关联的 GUID。
Type对象的常用方法: