【C#反射-Type類】
阿新 • • 發佈:2018-12-26
一.反射的作用:
檢視和遍歷型別和型別的元資料;動態建立型別例項,動態的呼叫所建立的例項方法和欄位,屬性,遲繫結方法和屬性。
二.獲取Type物件例項:
反射的核心類-Type,封裝了關於型別的元資料,是進行反射的入口。當獲得了型別的Type物件後,可以根據Type提供的書信和方法獲得這個型別的一切資訊,包括欄位,屬性,事件,引數,建構函式等。
static void Main(string[] args) { //1.使用Type類提供的靜態方法GetType() Type t = Type.GetType("System.IO.Stream"); Console.WriteLine(t.ToString()); //2.使用typeof操作符 Type t1 = typeof(System.IO.Stream); Console.WriteLine(t1); //3.通過型別例項獲得Type物件 string name = "字串型別"; Type t2 = name.GetType(); Console.WriteLine(t2); //新建一個測試專案類庫,命名Testdll,新增到專案引 Class1 c1 = new Class1(); Type t3 = c1.GetType(); Console.WriteLine(c1); }
三.Type型別和System.Reflection名稱空間組織及結構。
在上述程式碼中新增一下程式碼:
Type提供了用於獲取型別的基本資訊。如:當前物件型別,名稱空間,物件和名稱空間全名,是否公開等...可以F12到Type中檢視。Console.WriteLine(t3.Name); //當前成員名稱 Console.WriteLine(t3.FullName); //型別全名 Console.WriteLine(t3.Namespace);//獲取名稱空間 Console.WriteLine(t3.BaseType); //在.NET中對映型別的引用 Console.WriteLine(t3.Attributes);//獲取與 System.Type 關聯的屬性。 //......