C#复习反射

时间:2021-07-27 21:20:14

反射中常用方法:

 //获取对象类型
One one = new One();
Type t = one.GetType(); //动态加载
Assembly a = Assembly.LoadFile(path);
//获取所有公共类
Type[] _tys = assembly.GetExportedTypes(); //获取所有类
Type[] types = assembly.GetTypes(); //创建对象实例
A a = Activator.CreateInstance(type[]) as A;
assembly.GetType("类名"); MemberInfo[] ms = t.GetMembers();//获取所有public方法
FieldInfo[] fs = t.GetFields();//获取所有的public字段
PropertyInfo[] ps = t.GetProperties();//获取所有属性 MethodInfo m = t.GetMethod("方法名");//获取指定public方法
FieldInfo f = t.GetField("字段名");//获取指定public字段 //获取私有字段或方法的时候在参数中加上如下参数即可
BindingFlags.Instance | BindingFlags.NonPublic //执行方法
m.Invoke(对象实例,参数);//非静态方法执行
m.Invoke(null,参数);//静态方法执行

小弟菜鸟,请大神们指教