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();5、assembly.GetType("反射Demo.PersonT`2")  //泛型6、typeof(MyList<,>);        //泛型

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对象的常用方法:

       var personType = typeof(Person);
            personType.GetProperties();
            personType.GetProperty("Name");
            personType.GetFields();
            personType.GetField("_name");
            personType.GetMethods();
            personType.GetMethod("SayHello");
            personType.GetMembers();
            personType.GetMember("Name");
            personType.MakeGenericType(new Type[] { typeof(string) }).GetMethod("SayHello").Invoke(obj);//为泛型对象指定泛型类型       typeof(EJobType).GetEnumUnderlyingType();//获取枚举基础类型,此方法只能用于枚举类型

MethodInfo成员:

mi.MakeGenericMethod(new Type[]{typeof(string)}).Invoke(obj,null);//为泛型方法指定泛型类型

最新文章

  1. android studio ndk配置和ndk开发
  2. 【SPI】Polling Interrupt DMA
  3. TCSQL实时列表缓存数据库帮助文档
  4. 解决treeview未选中时,默认选中首个根节点的问题!
  5. 一种json生成html的思路
  6. 问答精华-IntelliJ IDEA快捷键大全
  7. Asp.net下载文件
  8. JQuery Mobile 实战一
  9. sitemap制作
  10. Arduino单片机使用和开发问题记录(转)
  11. 自学Python2.7-collections系列
  12. .NET中的各种池
  13. c/c++ 多线程 thread_local 类型
  14. ext.js的mvc开发模式详解
  15. c# 获取本机IP
  16. .whl文件打开方式 Python
  17. 【1】存在大于1s的FullGC
  18. COGS.1317.数列操作c(分块 区间加 区间求和)
  19. 谷歌浏览器慎用有道词典插件(&lt;audio&gt;&lt;/audio&gt;) (转载)
  20. 目标检测之dpm---hog的最优升级版

热门文章

  1. Python 爬取 13 个旅游城市,告诉你五一大家最爱去哪玩?
  2. 推荐一款移动端小视频App玲珑视频
  3. Qt Quick 基本元素初体验
  4. 使用windows 上的远程连接来远程Linux Ubuntu系统的设置
  5. Oracle性能调优之虚拟索引用法简介
  6. Linux进程启动/指令执行方式研究
  7. 【04】Jenkins:基本功能补充说明
  8. Kafka学习笔记2--Kafka的服务端配置
  9. Application类-应用程序生命周期
  10. 排序算法Java代码实现(四)—— 归并排序