- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实例总结C反射基础知识[原创]
本文中部分内容参考自:
1.Pro C# with .NET 3.0 Special Edition
2. /JimmyZhang/archive/2008/01/27/Reflection-Part1.html
本文中所有源代码下载链接:/LinderMan/Exercise.rar
一、基本概念
反射:反射是一个运行库类型发现的过程。 通过反射可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他相关信息如基类、命名空间、数据清单等。
二、命名空间
1.System.Reflection命名空间内的各类型
(1)Assembly 通过它可以加载、了解和操纵一个程序集
(2) AssemblyName 通过它可以找到大量隐藏在程序集的身份中的信息,如版本信息、区域信息等
(3) EventInfo 事件的信息
(4) FieldInfo 字段的信息
(5) MethodInfo 方法的信息
(6) ParameterInfo 参数的信息
(7)PropertyInfo 属性的信息
(8) MemberInfo 是抽象基类,为 EventInfo、FieldInfo 、MethodInfo、PropertyInfo等类型定义了公共的行为。
(9) Module 用来访问带有多文件程序集的给定模块
2.System.Type类
System.Type支持的成员可以分为这样几类
(1) Is*** 用来检查一个类型的元数据,如IsAbstract、IsClass、IsValueType等等
(2) Get*** 用来从类型得到指定项目,如GetEvent()得到类型的一个指定的事件(EventInfo)。 另外,这些方法都有一个单数版本和一个复数版本。如GetEvent()对应有一个复数版 本GetEvents(), 该方法返回一个相关的EventInfo数组
(3) FindMembers() 根据查询条件返回一个MemberInfo类型的数组
(4)GetType() 该静态方法根据一个字符串名称返回一个Type实例
(5)InvokeMember() 对给定项目进行晚期绑定
3.得到一个Type类型实例的三种方法(因为Type是一个抽象类,所以不能直接使用new关键字创建一个Type对象)
(1) 使用System.Object.GetType()
e.g: Person pe=new Person(); //---------定义pe为person类的一个对象
Type t=pe.GetType();
(2)使用System.Type.GetType()静态方法,参数为类型的完全限定名
e.g: Type t=Type.GetType(Entity.Person);
该方法被重载,允许指定两个布尔类型的参数,一个用来控制当前类型不能找到时是否抛出异常,
另一个用来指示是否区分字符串大小写
Type t=Type.GetType(Entity.Person,false,true);
注意到传入的字符串并没有包含类型所在的程序集信息,此时该类型便被认为是定义在当前执行的程序集中的。
要得到一个外部私有程序集的类型元数据时,字符串参数必须使用类型完全限定名加上类型
您可能关注的文档
- 如何才能有效果的对孩子进行个性化教育.doc
- 如何提高组织的向心力,实现企业高绩效.doc
- 如何治疗儿童尿床.doc
- 如何理解多普勒效应的频率变化.doc
- 如何解决狗狗体臭问题.doc
- 如何来提高我们的视奏能力.doc
- 如何调整电脑屏幕的刷新率.docx
- 如何通过体态生化论管理自我情绪试题和满分答案(时代光.doc
- 如何通过态度协调论管理自我情绪教程及答案.doc
- 如图客轮折线A—B—C从A出发经B到C匀速航行,货轮从AC的中点D出发沿某一方向匀速直线.doc
- 2023年执业药师之中药学专业一综合提升测试卷包含答案.docx
- 2022-2023年教师资格之中学物理学科知识与教学能力综合提升训练试卷附答案.docx
- 注册土木工程师(水利水电)之专业基础知识通关模拟考试试卷.docx
- 2023年公用设备工程师之(暖通空调+动力)基础知识检测卷和答案.docx
- 药学类之药学(中级)通关检测卷提供答案解析.docx
- 2023年试验检测师之桥梁隧道工程通关练习试题提供答案解析.docx
- 2023年教师资格之中学英语学科知识与教学能力模拟考试试卷和答案.docx
- 个人房产实物借款抵押合同专业版范本.doc
- 企业管理资料-摄影师聘用合同文档范本.doc
- 服务采购合同变更协议书.doc
1亿VIP精品文档
相关文档
最近下载
- VDA 2 EN 6th 2020 供应商管理标准 Securing the Quality of Supplies Production process and product approval PPA AIAG QMC vda2.pdf
- 禽肉类食材配送及售后服务方案.docx
- 生物物理学:能量、信息、生命7.pdf
- 涉氨制冷特种设备安全风险点登记台账、分级管控分析评价记录、清单、告栏、隐患排查清单、治理台账.docx VIP
- 体育专业开题报告毕业答辩模板.pptx VIP
- 河道水体生态修复治理施工方案.pdf
- JTGT F20-2015 公路路面基层施工技术细则.pdf
- 环境管理体系环境管理手册.pdf
- 关于推动基层党建工作与生产经营深度融合的措施与建议.docx VIP
- 同济大学博士后研究人员工作报告.docx
文档评论(0)