程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#反射命名空間淺析(1)

C#反射命名空間淺析(1)

編輯:關於C語言

學習C#反射命名空間之前我們來看看C#反射的概念,反射是一個運行庫類型發現的過 程。 通過反射可以得到一個給定程序集所包含的所有類型的列表,這個列表包括給定類 型中定義的方法、字段、屬性和事件。也可以動態的發現一組給定類支持的借口、方法的 參數和其他相關信息如基類、命名空間、數據清單等。

C#反射命名空間詳細介紹:

1.System.Reflection命名空間內的各類型

(1) Assembly通過它可以加載、了解和操縱一個程序集

(2) AssemblyName 通過它可以找到大量隱藏在程序集的身份中的信息,如版本信息、 區域信息等

(3) EventInfo  事件的信息

(4) FIEldInfo  字段的信息

(5) MethodInfo  方法的信息

(6) ParameterInfo  參數的信息

(7) PropertyInfo  屬性的信息

(8) MemberInfo  是抽象基類,為  EventInfo、FIEldInfo 、MethodInfo、 PropertyInfo等類型定義了公共的行為。

(9) Module 用來訪問帶有多文件程序集的給定模塊

2.System.Type類

System.Type支持的成員可以分為這樣幾類

(1) Is***   用來檢查一個類型的元數據,如IsAbstract、IsClass、IsValueType 等等

(2) Get*** 用來從類型得到指定項目,如GetEvent()得到類型的一個指定的事件 (EventInfo)。 另外,這些方法都有一個單數版本和一個復數版本。如GetEvent()對應 有一個復數版   本GetEvents(), 該方法返回一個相關的EventInfo數組

(3) FindMembers()   根據查詢條件返回一個MemberInfo類型的數組

(4)GetType()  該靜態方法根據一個字符串名稱返回一個Type實例

(5)InvokeMember()  對給定項目進行晚期綁定

3.得到一個Type類型實例的三種方法

因為Type是一個抽象類,所以不能直接使用new關鍵字創建一個Type對象

(1)使用System.Object.GetType()

Person pe=new Person();
//---------定義pe為person類的一個對象
Type t=pe.GetType();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved