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命名空间,核心类型如下:

类型

作用

Type

类型的“身份证”,反射的入口

Assembly

程序集信息

MethodInfo