通过反射系统,在不使用new关键词,不知道对象类型的情况下,仅仅通过对象的名称创建一个一模一样的实例的过程
类的结构说明都会以System.Reflection.Type进行保存。
Type object = Type.GetType(classiy);
Activator.CreateInstance(objType);
MethodInfo method = objType.GetMethod("Add");
add.Invoke(obj,null);
简单使用如下:
先定义一个类:
- public class List
- {
- public void Add()
- {
- Console.WriteLine("ddddddd");
- }
- }
定位类,格式如下:
- // 定位类 命名空间.类名, 项目名称
- const string classLocation = "HelloWord.List, HelloWord";
获取 List (对应类)类型对象:
Type objectType = Type.GetType(classLocation);
- // 通过类型实例化
- object obj = Activator.CreateInstance(objectType);
-
- // 调用“Add”(对应的)方法
- MethodInfo add = objectType.GetMethod("Add");
- add.Invoke(obj, null);