.NET 中的反射、特性与动态编程
1. 反射基础
反射允许程序在运行时检查和操作类型、成员等元数据。下面通过几个例子来详细介绍反射的应用。
1.1 使用typeof()创建System.Type实例
Enum.Parse()方法可以将字符串转换为特定的枚举值,前提是需要一个Type对象来标识枚举类型。以下是示例代码:
using System.Diagnostics; // ... ThreadPriorityLevel priority; priority = (ThreadPriorityLevel)Enum.Parse( typeof(ThreadPriorityLevel), "Idle"); // ...在这个例子中,Enum.Parse()将字符串"Idle"转换为System.Diagnostics.ThreadPriorityLevel.Idle。
1.2 成员调用
反射的应用不仅限于获取元数据,还可以动态调用元数据引用的成员。例如,定义一个CommandLineInfo类来表示应用程序的命令行参数。使用反射可以将命令行选项映射到类的属性名,并在运行时动态设置这些属性。
以下是完整的示例代码