如何使用反射创建类实例,并调用方法.
2014-02-26 22:13
295 查看
namespace TestSpace { public class TestClass { private string _value; public TestClass() { } public TestClass(string value) { _value = value; } public string GetValue( string prefix ) { if( _value==null ) return "NULL"; else return prefix+" : "+_value; } public string Value { set { _value=value; } get { if( _value==null ) return "NULL"; else return _value; } } } }
//上面是一个简单的类,包含一个有参数的构造器,一个GetValue的方法,一个Value属性,我们可以通过方法的名称来得到方法并且调用之,如: //获取类型信息 Type t = Type.GetType("TestSpace.TestClass"); //构造器的参数 object[] constuctParms = new object[]{"timmy"}; //根据类型创建对象 object dObj = Activator.CreateInstance(t,constuctParms); //获取方法的信息 MethodInfo method = t.GetMethod("GetValue"); //调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值 BindingFlags flag = BindingFlags.Public | BindingFlags.Instance; //GetValue方法的参数 object[] parameters = new object[]{"Hello"}; //调用方法,用一个object接收返回值 object returnValue = method.Invoke(dObj,flag,Type.DefaultBinder,parameters,null);
2.使用反射另外一个例子.使用 typeof
一个类
public class Processor { public int Process(int value) { return value + 1; } }
使用反射
Type t = typeof(Processor); int value = (int) t.InvokeMember( "Process", BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, processor, new object[] {i});
相关文章推荐
- 09_通过读取配置文件的方式来使用反射完成对实例对象方法调用
- java反射Method中的如何调用任意方法,即invoke()的使用
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 如何通过C#.NET中的反射机制来创建C#.NET泛型类的实例,并调用其方法??
- java如何使用反射调用类中的方法
- 解析如何使用反射调用类型成员 方法,字段,属性
- 如何使用Javascript调用后台数据之实例方法详解
- [c#美味] 使用反射动态创建实例并调用方法
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- 300.33通过读取配置文件方式来使用反射完成实例对象调用方法
- 使用java反射中的getMethod,invoke方法调用对象方法的实例
- 如何使用Java的反射机制以及调用构造方法?
- 使用反射构造对象实例并动态调用方法
- JavaSE第六十四讲:使用反射机制调用对象的私有方法、访问对象的私有成员变量
- cocos2d-js如何在android平台上使用js直接调用Java方法
- dede使用方法---如何调用指定栏目
- [转载]如何在MDI中使子窗体只保留一个实例(反射方法)
- 使用反射查看调用方法