using System.Reflection;
一、Assembly
程序集处理类库 ,多用于反射DLL中的类,接口,字段,方法
加载Dll
Assembly aseembly = Assembly.LoadFile(<Dll's path>);
反射所有类型【类、接口···】
aseembly.GetTypes();
反射方法
aseembly.GetTypes()[0].GetMethods();
反射字段
aseembly.GetTypes()[0].GetFields();
二、类反射
注意事项
- 类的自反射:Class.GetType()
- 反射字段、方法,修饰符必须为Public
- assembly.CreateInstance(
);
注意: 1.创建实例时要保证反射dll中的依赖dll也在同一个目录 2.创建实例时要保证类中存在构造函数并且能够实例化 |
三、字段反射
只能反射public字段不能反射属性
获取字段值
FieldInfo f1 = t.GetField("name");
f1.GetValue(<T>)
修改字段值
filedInfo1.SetValue(<T>, "小明");
四、方法反射
反射的方法要设置public访问符