C# 反射(Reflection)详解:从原理到实战
一、什么是反射?
反射是 .NET 提供的一种机制,允许程序在运行时动态地获取类型信息(Type)、访问元数据(Metadata),并动态创建对象、调用方法、读写属性/字段,甚至操作私有成员。
一句话总结:
反射 = 运行时的类型自省 + 动态操作
没有反射,代码只能“写死”:
var obj = new MyClass(); obj.Method();有了反射,你可以做到:
// 不知道 MyClass 是什么,也能创建对象并调用方法 var type = Type.GetType("MyNamespace.MyClass"); var instance = Activator.CreateInstance(type); var method = type.GetMethod("Method"); method.Invoke(instance, null);二、反射的核心类型(System.Reflection)
反射主要位于System.Reflection命名空间,核心类型如下:
类型 | 作用 |
|---|---|
| 类型的“身份证”,反射的入口 |
| 程序集信息 |
|