C#复习反射

反射中常用方法:

 1 //获取对象类型
 2 One one = new One();
 3 Type t = one.GetType();
 4
 5 //动态加载
 6 Assembly a = Assembly.LoadFile(path);
 7 //获取所有公共类
 8 Type[] _tys = assembly.GetExportedTypes();
 9
10 //获取所有类
11 Type[] types = assembly.GetTypes();
12
13 //创建对象实例
14 A a = Activator.CreateInstance(type[0]) as A;
15 assembly.GetType("类名");
16
17 MemberInfo[] ms = t.GetMembers();//获取所有public方法
18 FieldInfo[] fs = t.GetFields();//获取所有的public字段
19 PropertyInfo[] ps = t.GetProperties();//获取所有属性
20
21 MethodInfo m = t.GetMethod("方法名");//获取指定public方法
22 FieldInfo f = t.GetField("字段名");//获取指定public字段
23
24 //获取私有字段或方法的时候在参数中加上如下参数即可
25 BindingFlags.Instance | BindingFlags.NonPublic
26
27 //执行方法
28 m.Invoke(对象实例,参数);//非静态方法执行
29 m.Invoke(null,参数);//静态方法执行

小弟菜鸟,请大神们指教

时间: 2024-10-22 08:21:23

C#复习反射的相关文章

复习java基础第七天(反射)

一:目标 Ø理解 Class 类 Ø理解 Java 的类加载机制 Ø学会使用 ClassLoader 进行类加载 Ø理解反射的机制 Ø掌握 Constructor.Method.Field 类的用法 Ø理解并掌握动态代理 1.Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口. 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象. 一个 Class 对象包含了特定某个类的有关信息. –  Class 对象只能由系统建立对象.

复习笔记:一个简单的反射工厂Demo

项目根目录创建一个properties文件: Apple = cn.gry.vo.Apple Orange = cn.gry.vo.Orange 创建接口: interface Fruit{ public void eat() ; } 创建两个vo类: class Apple implements Fruit{ public void eat(){ System.out.println("吃苹果") ; } } class Orange implements Fruit{ public

java8--类加载机制与反射(java疯狂讲义3复习笔记)

本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的class文件读入内存,并为之创建一个java.lang.class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象.(几乎所有的类都是java.lang.Class的实例); 所以JVM最先初始化的总是java.long.Object类. 在java中,一个类用

JAVA SE 基础复习-Class与反射

Class 关于Class,直接参考http://lavasoft.blog.51cto.com/62575/15433 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识.这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类.Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建.      Class 没有公共构造方法.Class 对象是在加载类时由 Java 虚拟机

复习Java中的反射机制

Class类的使用 任何一个类都是Class的实例对象,这个实例对象有三种表达方式 /**  *   */ /**  * @author jacky 2014年12月27日  */ class Foo {  void print() {   System.out.println("foo");  } } public class Reflect {  public static void main(String[] args) {   Foo foo1 = new Foo();   /

反射和泛型的复习

反射 在框架的设计中很多都用到了反射,比如spring中我们在applicationContext.xml中配置类,通过反射+工厂模式得到类的实例,就可以操作类了——操作一个类可以分为操作属性,构造方法,普通方法. 反射的原理 我们编写的Java文件是xxx.java保存在硬盘上的,只是.java是无法运行的,需要编译成.class文件,JVM再将这个class文件通过类加载器加载到内存中,这个class文件在内存中是以Class类的形式表示.所以,使用反射的第一步是得到Class类(因为.ja

Java复习之反射机制

1. Object类中getClass()方法的作用 得到对象所在的类 2. Java反射机制 Class类 实例化Class类对象的三种方法: forName()方法 类.Class 对象.getClass() 3. 用Class 类完成对象的实例化操作 newInstance(),必须有无参构造函数 4. 通过Constructor类调用有参构造方法完成对象的实例化操作 getConstructors() 5. 反射应用 使用反射去得实现的全部接口,getInterfaces();getNa

JAVA基础部分复习(五、JAVA反射)

关于反射: 1.需要了解jvm类的加载机制(java高级部分会详细介绍) 2.反射的API其实只要多看看API和源码,很容易就懂了. 下面是代码,简单讲解反射的使用: import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * JAVA反射机制(首先对于反射,建议大家去看一下javaapi,要懂得看源码,这样才能更深入了解反射的原理,并且能

注解与反射-复习

目录 注解 内置注解 元注解 自定义注解 反射机制 简介 Class类 Java内存 类加载的过程 ClassLoader 反射获取运行时类的结构信息 动态创建对象 通过反射创建对象 (一般情况) 通过"构造器对象"创建对象 (不存在无参构造) 通过反射调用成员: method field 测试: 性能分析 反射获取泛型数据 反射获取注解数据 基于B站秦疆老师的课. 感谢! 注解 @since JDK1.5 不是程序本身, 可以对程序做出解释, 可以被其他程序读取(如 编译器) 内置注