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);//为泛型方法指定泛型类型

.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. Elasticsearch由浅入深(七)搜索引擎:_search含义、_multi-index搜索模式、分页搜索以及深分页性能问题、query string search语法以及_all metadata原理

    _search含义 _search查询返回结果数据含义分析 GET _search { , "timed_out": false, "_shards": { , ...

  2. 开源基于Canal的开源增量数据订阅&消费中间件

    CanalSync canal 是阿里巴巴开源的一款基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB). 我开发的这个CanalSync项目 ht ...

  3. 百度编辑器ueditor批量上传图片或者批量上传文件时,文件名称和内容不符合,错位问题

    百度编辑器ueditor批量上传附件时,上传后的文件和实际文件名称错误,比如实际是文件名“dongcoder.xls”,上传后可能就成了“懂客.xls”.原因就是,上传文件时是异步上传,同时进行,导致 ...

  4. Hystrix(服务熔断,服务降级)

    一.Hystrix 1.服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C有调用其他的微服务,这就是所谓的”扇出”,如扇出的链路上某个微服务的调用响应式过长或者 ...

  5. 关于stm32f10x_conf.h文件

    简介 stm32f10x_conf.h文件有2个作用:①提供对assert_param运行时参数检查宏函数的定义.②将开发者用到的标准外设头文件集中在这个文件里面,而stm32f10x_conf.h又 ...

  6. 发送邮件报错javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed

    关于使用javaMail发送邮件报错:javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multip ...

  7. MySQL使用现状分析与优化

    前言 再紧张的裁员氛围,也不该影响你学习的心态.不要本末倒置,技术永远不会落后,只要你还在学习的道路上,没有后退. 数据库架构 目前生产环境RDS是多区可用架构.数据库实例发生计划内或计划外的中断时, ...

  8. 『You Are Given a Tree 整体分治 树形dp』

    You Are Given a Tree Description A tree is an undirected graph with exactly one simple path between ...

  9. Linux环境下如何计算CPU占用率【华为云技术分享】

    1.Linux 环境下查看 CPU 信息 1.1.查看 CPU 详细信息 通过 cat /proc/cpuinfo 命令,可以查看 CPU 相关的信息: [root@rh ~]$ cat /proc/ ...

  10. Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer。。。。。检查一下servlet-api是否冲突了?

    原因:jar包发生冲突.在我的pom.xml文件中 <dependency>      <groupId>javax.servlet</groupId>       ...