1. 程式人生 > >unity中反射的使用

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()