C#怎么使用反射
时间: 2023-08-01 22:12:29 浏览: 108
C#中的反射是一种动态获取程序类型信息和动态访问程序的能力。使用反射技术可以在运行时动态加载程序集,创建对象,调用方法,访问属性等。
以下是使用反射的步骤:
1. 引用System.Reflection命名空间
2. 加载程序集
可以使用Assembly类来加载程序集,例如:
```
Assembly assembly = Assembly.Load("MyAssembly");
```
3. 获取类型信息
使用Type类来获取程序集中的类型信息,例如:
```
Type type = assembly.GetType("MyNamespace.MyClass");
```
4. 创建对象
使用Activator类的CreateInstance方法来创建对象,例如:
```
object obj = Activator.CreateInstance(type);
```
5. 调用方法
使用MethodInfo类来获取方法信息,并使用Invoke方法来调用方法,例如:
```
MethodInfo method = type.GetMethod("MyMethod");
method.Invoke(obj, null);
```
6. 访问属性
使用PropertyInfo类来获取属性信息,并使用GetValue和SetValue方法来访问属性,例如:
```
PropertyInfo property = type.GetProperty("MyProperty");
property.SetValue(obj, value);
```
以上是使用反射的基本步骤,需要注意的是,反射技术的使用会带来性能损失,因此应该谨慎使用。
阅读全文