C#反射可以通过System.Reflection命名空间中的类和方法来实现。以下是一个简单的示例:
首先,你需要引用System.Reflection命名空间:
using System.Reflection;
然后,你可以使用Type类来获取类型的信息:
Type type = typeof(MyClass);
接下来,你可以使用Type类的方法来获取类型的成员信息,比如字段、属性、方法等:
// 获取字段信息 FieldInfo[] fields = type.GetFields(); // 获取属性信息 PropertyInfo[] properties = type.GetProperties(); // 获取方法信息 MethodInfo[] methods = type.GetMethods();
你也可以使用Type类的方法来创建类型的实例、调用方法和访问属性:
// 创建类型的实例 object instance = Activator.CreateInstance(type); // 调用方法 MethodInfo method = type.GetMethod("MyMethod"); method.Invoke(instance, null); // 访问属性 PropertyInfo property = type.GetProperty("MyProperty"); property.SetValue(instance, "new value");
除了获取类型的成员信息,你还可以使用Type类的方法来获取和设置类型的特性:
// 获取类型的特性 MyAttribute attribute = type.GetCustomAttribute(); // 设置类型的特性 type.SetCustomAttribute(new MyAttribute());
这只是C#反射的一小部分功能,你还可以使用反射来实现更复杂的操作,比如动态加载程序集、创建泛型类型等。