Hero is coming back

风吹呀吹

风会指引你前进的方向

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[] {});

posted @ 2020-08-26 21:43  风吹呀吹  阅读(118)  评论(0编辑  收藏  举报