C# 反射

來源:互聯網
上載者:User

標籤:

        通過 System.Reflection 命名空間中的類以及System.Type,您可以擷取有關已載入的程式集和在其中定義的類型(如類、介面和值類型)的資訊。您也可以使用反射在運行時建立類型執行個體,以及調用和訪問這些執行個體。

       反射是一個程式集發現及啟動並執行過程,通過反射可以得到*.exe或*.dll等程式集內部的資訊。使用反射可以看到一個程式集內部的介面、類、方法、欄位、屬性、特性等資訊。在System.Reflection命名空間內包含多個反射常用的類,下面表格列出了常用的幾個類。

  • 使用 Assembly 定義和載入程式集,載入在資訊清單中列出的模組,以及從此程式集中尋找類型並建立該類型的執行個體。

  • 使用 Module 發現以下資訊:包含模組的程式集以及模組中的類等。您還可以擷取在模組上定義的所有全域方法或其他特定的非全域方法。

  • 使用 ConstructorInfo 發現以下資訊:建構函式的名稱、參數、存取修飾詞(如public 或 private)和實現詳細資料(如abstract 或 virtual)等。使用 Type 的GetConstructors 或GetConstructor 方法來調用特定的建構函式。

  • 使用 MethodInfo 發現以下資訊:方法的名稱、傳回型別、參數、存取修飾詞(如public 或 private)和實現詳細資料(如abstract 或 virtual)等。使用 Type 的GetMethods 或GetMethod 方法來調用特定的方法。

  • 使用 FieldInfo 發現以下資訊:欄位的名稱、存取修飾詞(如public 或 private)和實現詳細資料(如static)等;並擷取或設定欄位值。

  • 使用 EventInfo 發現以下資訊:事件的名稱、事件處理常式資料類型、自訂特性、宣告類型和反射類型等;並添加或移除事件處理常式。

  • 使用 PropertyInfo 發現以下資訊:屬性的名稱、資料類型、宣告類型、反射類型和唯讀或可寫狀態等;並擷取或設定屬性值。

  • 使用 ParameterInfo 發現以下資訊:參數的名稱、資料類型、參數是輸入參數還是輸出參數,以及參數在方法簽名中的位置等。

  • 當您在一個應用程式定義域的僅反射內容中工作時,請使用 CustomAttributeData 來發現有關自訂特性的資訊。通過使用 CustomAttributeData,您不必建立特性的執行個體就可以檢查它們。


  • 可以參看http://blog.csdn.net/lyncai/article/details/8621880


C# 反射

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.