Assembly:封装程序集信息,可以动态加载程序集

获取Assembly的几种方式:

  1. 1var ass1 = Assembly.Load("ClassLibrary1");//项目中已引用此程序集,可以使用这种方法
  2. 2var ass2 = Assembly.LoadFrom("c://xxxx.dll");//根据程序集全路径获取Assembly
  3. 3var ass3 = personType.Assembly;//指定Type所在的Assembly
  4. 4var ass4 = Assembly.GetAssembly(personType);//同上
  5. 5var ass5 = Assembly.GetExecutingAssembly();//包含程序入口的程序集
  6.  

Type:封装反射得到的类信息,也可以通过它反射创建一个对象

获取Type对象的几种方式:

  1. 1assembly.GetType("反射Demo.Person");
  2. 2Type.GetType("反射Demo.Person");
  3. 3typeof(Person);
  4. 4new Person().GetType();5assembly.GetType("反射Demo.PersonT`2")  //泛型6、typeof(MyList<,>);        //泛型

Type对象的常用属性:

  1.        animalType.IsArray//是否是数组类型
  2. animalType.IsImport//是否是COM类型库导入
  3. animalType.IsVisible//是否可由程序集之外的代码访问
  4. animalType.IsNestedPublic//如果类是嵌套的并且声明为公共的,则为 true;否则为 false。
  5. animalType.IsNestedAssembly//是否是嵌套的并且只能在它自己的程序集内可见。
  6. animalType.IsNestedFamily//是否是嵌套的并且只能在它自己的家族内可见。
  7. animalType.IsNested//嵌套在另一个类型内
  8. animalType.Namespace//命名空间
  9. animalType.BaseType//直接继承Type
  10. animalType.AssemblyQualifiedName//程序集限定名
  11. animalType.IsSealed//是否声明为密封的
  12. animalType.FullName//获取该类型的完全限定名称,包括其命名空间,但不包括程序集。
  13. animalType.Assembly//获取在其中声明该类型的 System.Reflection.Assembly
  14. animalType.Module//获取在其中定义当前 System.Type 的模块 (DLL)。
  15. animalType.GUID//获取与 System.Type 关联的 GUID。

Type对象的常用方法:

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

MethodInfo成员:

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

.Net反射-基础1-Assembly、Type的更多相关文章

  1. C#学习笔记----反射基础

    反射基础 反射用于在程序运行过程中,获取类里面的信息或发现程序集并运行的一个过程.通过反射可以获得.dll和.exe后缀的程序集里面的信息.使用反射可以看到一个程序集内部的类,接口,字段,属性,方法, ...

  2. C#反射与特性(一):反射基础

    目录 C#反射与特性(一):反射基础 1. 说明 1.1 关于反射.特性 2. 程序集操作 2.1 获取 程序集对象(Assembly) 2.2 Assembly 使用 2.3 获取程序集的方式 C# ...

  3. java反射 之 反射基础

    一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  4. C#基础系列 - 反射基础

    反射用于在程序运行过程中,获取类里面的信息或发现程序集并运行的一个过程.通过反射可以获得.dll和.exe后缀的程序集里面的信息.使用反射可以看到一个程序集内部的类,接口,字段,属性,方法,特性等信息 ...

  5. java反射基础知识(四)反射应用实践

    反射基础 p.s: 本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的Quick Start. 在应用反射机制之前,首先我们先来看一下如何获取一个对象对应的 ...

  6. java反射基础知识(一)

    一.反射 反射:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  7. 反射基础 System.Reflection

    一.获取程序集Assembly 1.获取当前运行的程序集 System.Reflection.Assembly[] asm = AppDomain.CurrentDomain.GetAssemblie ...

  8. 【转】Java反射 之 反射基础

    一.反射 反射:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...

  9. Java Reflection 反射基础

    反射基础: package reflection; /** * Created by : Infaraway * DATE : 2017/3/2 * Time : 23:06 * Funtion : ...

随机推荐

  1. JVM系列之四:运行时数据区

    1. JVM架构图 Java虚拟机主要分为五大模块:类装载器子系统.运行时数据区.执行引擎.本地方法接口和垃圾收集模块. 2. JDK1.7内存模型-运行时数据区域 根据<Java 虚拟机规范( ...

  2. 第十一次作业 LL(1)文法的判断,递归下降分析程序

    1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不 ...

  3. go-gin-api 规划目录和参数验证(二)

    概述 首先同步下项目概况: 上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享: 规划目录结构 模型绑定和验证 自定义验证器 制定 API 返回结构 废话不多说,咱们开始吧. 规 ...

  4. 并查集 + 路径压缩(经典) UVALive 3027 Corporative Network

    Corporative Network Problem's Link Mean: 有n个结点,一开始所有结点都是相互独立的,有两种操作: I u v:把v设为u的父节点,edge(u,v)的距离为ab ...

  5. StuQ技能图谱

  6. 用JavaScript带你体验V8引擎解析标识符

    上一篇讲了字符串的解析过程,这一篇来讲讲标识符(IDENTIFIER)的解析. 先上知识点,标识符的扫描分为快解析和慢解析,一旦出现Ascii编码大于127的字符或者转义字符,会进入慢解析,略微影响性 ...

  7. 进程、线程、轻量级进程、协程与 go 的 goroutine

    本文内容 进程 线程 协程 Go 中的 goroutine 参考资料 最近,看一些文章,提到“协程”的概念,心想,进程,线程,协程,前两个很容易,任何一本关于操作系统的书都有说,开发时也经常用,但是协 ...

  8. tp5.0在控制器中和在模板中调用配置文件中的常量

    框架配置文件config.php中定义 'view_replace_str'  =>  [ '__MEMBER__'=> '/static/member',         '__uplo ...

  9. javascript之DOM选择符

    javascript库中最常用的一项功能,就是根据CSS选择符选择与某个模式匹配的DOM元素.实际上jQuery的核心就是通过css选择符查询DOM文档取得元素的引用,从而抛开了getElementB ...

  10. Linux操作系统的日志管理之rsyslog实战案例

    Linux操作系统的日志管理之rsyslog实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志介绍 1>.什么是日志 历史事件: 时间,地点,人物,事件 日志级 ...