C# 反射


using System.Reflection;

一、Assembly

程序集处理类库 ,多用于反射DLL中的类,接口,字段,方法

加载Dll

Assembly aseembly = Assembly.LoadFile(<Dll's path>);

反射所有类型【类、接口···】

aseembly.GetTypes();

反射方法

aseembly.GetTypes()[0].GetMethods();

反射字段

aseembly.GetTypes()[0].GetFields();

二、类反射

注意事项

  1. 类的自反射:Class.GetType()
  2. 反射字段、方法,修饰符必须为Public
  3. assembly.CreateInstance();
注意:
1.创建实例时要保证反射dll中的依赖dll也在同一个目录
2.创建实例时要保证类中存在构造函数并且能够实例化

三、字段反射

只能反射public字段不能反射属性

获取字段值

FieldInfo f1 = t.GetField("name");
f1.GetValue(<T>)

修改字段值

filedInfo1.SetValue(<T>, "小明");

四、方法反射

反射的方法要设置public访问符

调用方法

.GetType().GetMethod().Invoke(, new object[] {});

原文地址:https://www.cnblogs.com/tangpeng97/p/13568108.html