问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中的反射要怎样理解?

发布网友 发布时间:2022-08-16 23:59

我来回答

1个回答

热心网友 时间:2023-10-09 08:57

反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。

程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构。

应用程序结构分为应用程序域—程序集—模块—类型—成员几个层次,公共语言运行库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。

程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集、模块和类型的对象。我们可以使用反射动态地创建类型的实例,将类型绑定到现有对象或从现有对象中获取类型,然后调用类型的方法或访问其字段和属性。反射通常具有以下用途。

(1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。
(2)使用Mole了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。
(3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetConstructors或GetConstructor方法来调用特定的构造函数。
(4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetMethods或GetMethod方法来调用特定的方法。
(5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。
(6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。
(7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
(8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。

System.Reflection.Emit命名空间的类提供了一种特殊形式的反射,可以在运行时构造类型。
反射也可用于创建称为类型浏览器的应用程序,使用户能够选择类型,然后查看有关选定类型的信息。
此外,Jscript等语言编译器使用反射来构造符号表。System.Runtime.Serialization命名空间中的类使用反射来访问数据并确定要永久保存的字段,System.Runtime.Remoting命名空间中的类通过序列化来间接地使用反射。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我的世界手游天堂门怎么做 天堂门怎么放水 肌肤暗沉怎么调理?肌肤美白小窍门 该收心回归工作的说说 开启上班模式幽默说说(开启上班模式,享受美好生活) 格兰仕电磁炉e0换245k电阻用两次又烧 格兰仕电磁炉显示E4怎么办? ...于海中小虾,海中大虾……瀚海蛟龙的性质。谢谢了 相亲之后一周都有联系,也有出去吃饭看电影,但不明确男方具体什么态度... 相亲男之前一直对我很好(三天两头喊我看电影,吃饭),正好聊的那段时间我... ...个星期几每天晚上叫我出去吃饭看电影 当然都是他买单 。这样弄的... 在.net什么叫做反射? 关于.NET的反射 什么是反射,举例说明? .net中的反射. 看清回答. 八仙桌是什么 八仙桌的标准尺寸 八仙桌的介绍 怎么解除天涯明月刀72小时安全锁? 天涯明月刀ol安全模式会自动解除吗 天刀安全模式怎么解除啊? 天涯明月刀安全模式怎么自动解除 天涯明月刀安全模式怎么解除 安全模式详解 小程序怎么搞微信投票? 车友们都用什么牌子的行车记录仪可以 xgear是什么牌的行车记录仪 行车记录仪什么牌子好用x 为爱车奕歌加装行车记录仪,从此不怕前后障碍! 泡脚要放什么东西去泡可以治疗感冒??? 感冒开水泡脚放什么有效 感冒泡脚水里放啥好? 谢谢! 有点感冒,泡脚加点什么好 紫菜怎么泡? NET的反射为什么慢 2O15年2月23曰或24曰香港中国银行开门吗? 请教.NET 反射机制的应用场景 把塑料块放在水中,如果弹簧测力计的指针不动说明什么? 最小刻度0.1n的弹簧测力计读书规则 有人认为使用弹簧测力计必须注意以下几点,你认为其中哪一点是不正确的( ). A.使用前必须检查指 弹簧测力计是根据弹簧受到的拉力越大,弹簧伸长就越 ______的特性制成的;电能表是测量 ______的仪表 三星65q60可以连接哈曼卡顿音响吗? 三星q60有没有蓝牙 粉丝炖鸡肉的做法 玉兰花是哪个城市的 昨天(周日)中午梦见自己开车,差点撞了人。晚上,就是刚刚又梦到自己生病。请问这预示着什么? 梦见自己开车快撞上人的时候被惊醒 2008cad隐藏的快捷键是什么? 微信群怎么拉企业进群 两只老虎爱跳舞小兔子乖乖拔萝卜叫什么名字呀 细雨鱼儿出 微风燕子斜的哲学道理 哪个Python编辑器复制代码后,粘贴到笔记本时还是一样的代码颜色 怎样用迅雷来下载其他软件 在做excel时,怎么将依据数据建立的表格缩小或放大,急用,非常感谢!