1. 程式人生 > WINDOWS開發 >C# 關於反射Reflection

C# 關於反射Reflection

1、反射是System.Reflection名稱空間,是微軟提供的一個幫助類庫。

優點:動態,減少依賴,可破壞單例,是普通方法無法做到的。缺點:程式碼量比較大,容易出錯,有較大的效能損失。

2、反射有這麼幾個使用步驟 :1)動態載入dll ;2)獲取型別;3)建立例項;4)使用例項

技術分享圖片

3、關於反射獲取方法,並使用方法

獲取型別之後,可以type.GetMethod()獲取方法,並使用。例子如截圖

技術分享圖片

4、呼叫泛型方法:需要使用MakeGenericMethod指定泛型方法的型別,然後才能Invoke呼叫

技術分享圖片

5、注意,當反射呼叫泛型類中泛型方法時,我們在獲取泛型型別時候,要使用佔位符。注意看一下紅框標註的。(因為泛型的型別引數實際上就是一個佔位符)

技術分享圖片

6、可以根據型別獲取型別裡面的屬性type.GetProperties(),也可根據型別獲取型別裡面的欄位type.GetFields()

並通過getValue和setValue兩個方法進行獲取值和賦值。

技術分享圖片