C# 反射

博客介绍了根据type创建对象的几种方法,包括使用type.GetConstructor() / GetConstructors()结合Invoke方法、静态函数Activator.CreateInstance(),还提到通过Assembly获得程序集信息和动态加载程序集来获取类的类型,以及获取类型下变量和修改对象变量值的操作。

根据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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值