举例或浅讲反射(System.Reflection)

本文详细介绍了反射的概念及其在.NET框架中的应用。通过反射可以实现动态创建类型的实例、绑定现有对象及访问其成员等功能。此外,还介绍了如何使用System.Reflection.Emit命名空间中的类在运行时构建新的类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。
System.Reflection.Emit 命名空间的类提供了一种特殊形式的反射,能够在运行时构造类型。
反射也可用于创建称作类型浏览器的应用程序,它使用户能够选择类型,然后查看有关选定类型的信息。
反射还有其他一些用途。JScript 等语言编译器使用反射来构造符号表。System.Runtime.Serialization 命名空间中的类使用反射来访问数据并确定要持久保存的字段。
System.Runtime.Remoting 命名空间中的类通过序列化来间接地使用反射。
反射在下列情况下很有用:
1.需要访问程序元数据的属性。
2.检查和实例化程序集中的类型。
3.在运行时构建新类型。使用 System.Reflection.Emit 中的类。
4.执行后期绑定,访问在运行时创建的类型的方法。

例:
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值