根据type创建对象的几种方法
(1) type.GetConstructor() / GetConstructors()
types = new Type[]{ typeof(string) , typeof(int)}; (指定该构造函数有两个参数,分别是string型和int型)
constructorInfo = type.GetConstructor(types); (types为构造函数参数的类型)
constructorInfo.Invoke(objects); (objects 为构造函数参数)
(2) 静态函数 Activator.CreateInstance()
object = Activator.CreateInstance(type); (type 为创建对象的类型)
(3) 通过Assembly获得程序集的信息和动态加载程序集
System.Reflection;
assembly= Assembly.Load("ClassLibrary"); (通过程序集名称加载程序集)
assembly= Assembly.LoadFrom("ClassLibrary.dll"); (通过dll文件路径加载程序集)type =assembly.GetType("ClassLibrary.ClassName") (获取类的类型)
type 类的 属性 和 方法
获取类型下所有变量,不是类型。
(Type)type.GetFields();
修改对象中的变量的值
FieldInfo fieldInfo = type.GetField("_str");
fieldInfo.SetValue(object,"aaaa");