C# 反射

根据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"); 
原文地址:https://www.cnblogs.com/z45281625/p/11050279.html