当前位置: 首页 > article >正文

C#中反射基础与应用

反射

       反射是读取程序集中的元数据,使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。

一、应用场景

      反射在下列的一些场景中使用,能起到很好的作用。

     1、需要访问程序元数据的属性。

     2、检查和实例化程序集中的类型。

    3、在运行时构建新类型。

    4、执行后期绑定,访问在运行时创建的类型的方法。

二、反射使用

     C#语言中反射主要基于System.Type类和System.Reflection命名空间下的一些类来实现。下表是与反射相关的类。

类名 描述
System.Type 可访问关于任何数据类型的信息。
System.AppDomain 用于加载和执行程序集
System.Activator 主要用于创建对象的实例。
System.Reflection.Assembly 访问给定程序集的相关信息或把这个程序集加载到程序中。
System.Reflection.Module 提供访问和操作模块的信息与功能。
System.Reflection.ConstructorInfo 发现类构造函数的属性并提供对构造函数元数据的访问权限。
System.Reflection.ParameterInfo 发现参数的属性并提供对参数元数据的访问权限。
System.Reflection.MethodInfo 发现方法的属性并提供对方法元数据的访问权限。
System.Reflection.PropertyInfo 发现属性 (Property) 的特性 (Attribute) 并提供对属性元数据的访问。
System.Reflection.FieldInfo 发现字段的属性并提供对字段元数据的访问权限。
System.Reflection.MemberInfo 获取有关成员属性的信息并提供对成员元数据的访问。

1、System.Type

       通过Type类可以访问关于任何数据类型的信息,在反射中起到核心的作用。Type是一个抽象的基类,有与每种数据类型对应的派生类。通过使用这个派生类的对象的方法、字段、属性来查找有关该类型的所有信息。Type也是许多反射功能的入口 。

属性

      Type提供的可用属性,都是只读的。使用这些属性可以确定数据的类型。Type 实现的属性可分下面三类。

1、与类相关的各种名称的字符串
名称 描述
Name 获取数据类型名。
FullName 获取数据类型的完全限定名,包含名称空间,但不包括程序集。
Namespace 获取定义数据类型的名称空间名。
2、获取Type对象的引用的属性
名称 描述
BaseType 获取该Type的基本类型。
UnderlyingSystemType 获取该类型的公共语言运行时提供的类型。
ReflectedType 获取用于获取该成员的类对象。
3、判断Type的类型的属性</

http://www.kler.cn/news/357058.html

相关文章:

  • vueuse的常用方法记录
  • AI 视频工具合集
  • Python无监督学习中的聚类:K均值与层次聚类实现详解
  • 1.Node.js环境搭建(windows)
  • Python基础:20、Python基础综合案例
  • 如何使用python网络爬虫批量获取公共资源数据?
  • 六、存储过程和触发器及视图和临时表
  • 低代码模式即将下线;工作流上线消息节点、支持配置卡片样式
  • 计算机组成原理之磁盘存储器
  • 【分布式微服务云原生】《Redis 的高效之道:线程模型、IO 模型与 Reactor 模型全解析》
  • VB.NET 让窗体绘图持久化,类似VB6 ME.AutoRedraw=True
  • 2.5 windows xp,ReactOS系统快速系统调用的实现
  • 【Linux】冯诺依曼体系结构 OS的概念
  • 图论|图的构造、图的遍历方式、DFS98. 所有可达路径;海岛数量 岛屿最大面积 101. 孤岛的总面积
  • 引进Menu菜单与新增验证上传图片功能--系统篇
  • 编写一个通用的i2c控制器驱动框架
  • Xcode使用Instruments的dsym还原符号堆栈问题
  • 智慧农业案例 (三)- 蔬菜智能温室
  • 高级Sql 技巧
  • Qt优秀开源项目之二十四:EXCEL读写利器QXlsx