深入探索反射、特性与动态编程
1. 反射基础
反射不仅能用于获取元数据,还能动态调用其引用的成员。例如,在处理应用程序命令行时,可借助反射将命令行选项映射到类的属性名,并在运行时动态设置属性。
1.1 使用typeof()创建System.Type实例
以下代码展示了如何使用typeof()创建System.Type实例,并将字符串转换为枚举值:
using System.Diagnostics; // ... ThreadPriorityLevel priority; priority = (ThreadPriorityLevel)Enum.Parse( typeof(ThreadPriorityLevel), "Idle"); // ...在这个例子中,Enum.Parse()方法接收一个标识枚举的Type对象,然后将字符串转换为特定的枚举值,这里将"Idle"转换为System.Diagnostics.ThreadPriorityLevel.Idle。
1.2 成员调用
考虑定义一个CommandLineInfo类来表示应用程序的命令行。使用反射可以将命令行选项映射到属性名,并在运行时动