天天看点

unity中反射的使用反射

反射

定义

动态获取类型信息,动态创建对象,动态访问成员的过程。

作用

在编译时无法了解类型,在运行时获取类型信息,创建对象,访问成员。

流程

1.得到数据类型

2.动态创建对象

3查看类型信息(了解本身信息,成员信息)

常用类

1.取得数据类型Type 

方式一:Type.GetType(“类型全名”);

适合于类型的名称已知

方式二:obj.GetType();

适合于类型名未知,类型未知,存在已有对象

方式三:typeof(类型)

适合于已知类型

方式四:Assembly.Load(“XXX”).GetType(“名字”);

适合于类型在另一个程序集中

Type类常用Get系列方法 Is系列属性。

2.MethodInfo(方法)

重要方法: Invoke

3.PropertyInfo(属性)

重要方法:SetValue GetValue

4.FieldInfo(字段)

重要方法:SetValue GetValue

5.ConstructInfo(构造方法)

重要方法:Invoke

动态创建对象

Activator.CreateInstance(string 程序集名称,string 类型全名)

Activator.CreateInstance(Type type);

Assembly assembly = Assembly.Load(程序集);

assembly.CreateInstance(Type);

//找到有参构造方法,动态调用构造方法

type.GetConstructor(typeof(string)).Invoke()