程序集包含:类型元数据(描述在代码中定义的每一类型和成员,二进制形式)。程集元数据(程序集清单、版本号、名称等)、IL代码(这些都被装在exe或dll中)、资源文件。每个程序集都有自己的名称、版本等信息,这些信息可以通过AssemblyInfo.cs文件来自己定义。

获取一个类的类型  person p=new person();  Type  Type=p.getType();

得到一个类的类型  Type type=typeof(Person);

获取一个类型的父类   Type  type=s.GetType().BaseType;

获取Person类型的所有方法(不包括私有方法)

Person  p=new Person(); Type  personType=p.GetType();

MethodInfo[]   methods=personType.GetMethods();

foreach(var item in methods)

{

Console.Writeline(item.Name);

}

获取一个类型的属性:

PropertyInfo[]  properties=persontype.GetProperties();

遍历数组的时候返回的类型为PropertyInfo

获取一个类型的所有字段:FieldInfo[]  fields=typeof(Person).GetFiels();返回的类型为FieldInfo

获取一个类中的所有成员:MemberInfo[]  members=typePerson.GetMembers();遍历数组时返回的类型为MemberInfo;

通过反射调用方法:(定义的方法没有参数)

1.获取一个类的Type

2.获取我们要找的方法

3.创建一个该类的对象

4.调用方法

Type  person=typeof(Person);

MethodInfo  SayHi=peron.GetMethod("SayHi");

object obj=Activator.CreateInstance(person);

SayHi.Invoke(obj,null);

通过反射调用方法(定义的方法有参数)

Type  person=typeof(Person);

MethodInfo  info=person.GetMethod("Say",new Type[]{typeof(string),typeof(string)});

object obj=Activivator.CreateInstance(person);

info.Invoke(obj,new obj[]{"大家好","大坏蛋"});

调用一个带返回值的方法:

Type personType=typeof(Perosn);

MethodInfo info=personType.GetMethod("Add");//Add方法中返回的是一个int类型的方法

object obj=Activator.CreateInstance(personType);

object objreturn=info.Invoke(obj,new object[]{10,20});

动态加载程序集:

Assembly  asm=Assembly.LoadFile(@"E:\aa\程序集\程序集\ClassLibrary1\bin\Debug\ClassLibrary1.dll")

获取程序集中所有类型的Type

Type[]  types=asm.GetTypes();

获取所有类型的public 类型的Type

Assembly  adm=Assembly.LoadFile(文件的绝对路径);

Type[] publictype=adm.GetExportTypes();

获取指定的类型

Type typePerson=asm.GetType("ClassLibrary1.Person");

判断一个类型是否可以被另一个类型实例化

typePerson.IsAssignableForm(typeChinese);

考虑是一个类型是否为另一个类型的子类,返回的结果是一个bool类型

typePerson.IsSubclassOf(typeChinese)

欢迎关注我的公众号(同步更新文章)DoNet技术分享平台

阅读原文

C#程序集相关的概念相关推荐

  1. WiFi相关基础概念

    转自:https://blog.csdn.net/lbaihao/article/details/73250798 一.WiFi相关基础概念 1.什么是wifi 我们看一下百度百科是如何定义的: Wi ...

  2. 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念

    linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  3. linux驱动内核哪个文件夹,linux设备驱动归纳总结(一):内核的相关基础概念...

    linux设备驱动归纳总结(一):内核的相关基础概念 1. 内核与 linux 设备驱动的作用与关系 内核:用于管理软硬件资源,并提供运行环境.如分配 4G 虚拟空间等. linux 设备驱动:是连接 ...

  4. 【Linux开发】linux设备驱动归纳总结(二):模块的相关基础概念

    linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10.04 开发平台:S3C2440开发板 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  5. [转载]与索引相关的概念---聚簇因子

    原文地址:与索引相关的概念---聚簇因子作者:Ryan 1.聚簇因子(Clustering factor) 索引行的存储顺序与表中行的存储顺序之间的相似程度. 当相似度高时,这些数据行就会密集地存储在 ...

  6. 理解嵌入式开发中的一些硬件相关的概念

    为什么80%的码农都做不了架构师?>>>    做嵌入式系统开发,经常要接触硬件.做嵌入式开发对数字电路和模拟电路要有一定的了解.这样才能深入的研究下去.下面我们简单的介绍嵌入式开发 ...

  7. 【多目标优化】1. 多目标优化的相关基本概念

    [多目标优化]1. 多目标优化的相关基本概念 [多目标优化]2. 非支配排序遗传算法 -(NSGA.NSGA-II) [多目标优化]3. 基于分解的多目标进化算法 -(MOEAD) 在学习多目标优化的 ...

  8. SEO究竟是什么?SEO的相关基础概念介绍

    可能对于刚接触优化的新手来说,要明白SEO是什么,只有了解之后才能有进一步的学习以及提升.在互联网搜索引擎中,已经有了大量的相关资料以及定义.不同的人会用不同的语言来解释SEO是什么,但是最终的结果是 ...

  9. UART 相关的概念

    本篇博客会讲解uart相关的概念,会在下一篇博客中介绍如何基于Verilog的uart实现. 一,UART的功能 发送: 1,将数据从并行转为串行 2,起始位和停止位的设计 3,增加奇偶校验位 接收 ...

最新文章

  1. 计算机存储技术及其发展了论文,计算机网络存储技术探究-计算机网络论文-计算机论文(13页)-原创力文档...
  2. uwb定位算法c++代码_一指连小米UWB技术发布!手机一指,就能操控
  3. 北斗导航 | 学习PPP和PPP-RTK
  4. mysql 踩过的坑_MySQL数据库踩过的一些坑
  5. form表单回车提交问题
  6. [Vue warn]: Failed to mount component: template or render function not defined. (found in root insta
  7. rocket-console控制台安装
  8. Java定时器Timer学习之一
  9. 编程绘制图形java_[JAVA100例]026、基本图形绘制 - 编程入门网
  10. 源码包安装mysql5.7.25_centos源码安装mysql5.7.25-boost
  11. Hive中文件存储格式及大小比较测试
  12. PCWorld评出的2010年世界杀毒软件排名
  13. 阿里云手机号短信设置
  14. CUMCM 2021-B:乙醇偶合制备C4烯烃(1)
  15. [Android] 选项卡组件TabHost
  16. 我爱民科,苍蝇越多越干净?!
  17. 如何在word中输入带对号的方框
  18. 《The Selfish Giant》
  19. MySQL 5.5.20 中文乱码:我的抗争解决史
  20. 曲线上点的曲率半径计算

热门文章

  1. OPENCV回调函数
  2. C++ STL中set底层实现方式
  3. qtp启动java程序_转: QTP六脉神剑之调用Java程序
  4. shiro反序列化工具_Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)源码解析
  5. (56)zabbix Screens视图配置
  6. (五)Redis在项目中应用
  7. git常用配置(指令)
  8. 像Excel一样使用python进行数据分析(1)
  9. [技术分享]20171130_Kendo UI _ datePicker日期控件如何只选择年,不选择月,日?
  10. 06jQuery-04-DOM操作