c 通過反射獲取類中的所有欄位和屬性

2022-06-24 16:27:11 字數 1512 閱讀 6073

reflection中文翻譯為反射,是.net中獲取執行時型別資訊的方式。

net的應用程式由幾個部分:程式集(assembly)、模組(module)、型別(class)組成。

反射提供一種程式設計的方式,讓程式設計師可以在程式執行期獲得這幾個組成部分的相關資訊。

assembly類可以獲得正在執行的裝配件資訊,也可以動態的載入裝配件,

以及在裝配件中查詢型別資訊,並建立該型別的例項。

type類可以獲得物件的型別資訊,此資訊包含物件的所有要素:方法、構造器、屬性等等,通過type類可以

得到這些要素的資訊,並且呼叫之。

methodinfo包含方法的資訊,通過這個類可以得到方法的名稱、引數、返回值等,並且可以呼叫之。

諸如此類,還有fieldinfo、

eventinfo等等,這些類都包含在system.reflection命名空間下。

獲取類中的屬性

1///

2///

獲取類中的屬性

3///

4///

所有屬性名稱

5public list getproperties(t t)

612 system.reflection.propertyinfo properties = t.gettype().getproperties(system.reflection.bindingflags.instance |system.reflection.bindingflags.public);

13if (properties.length <= 0)14

17foreach (system.reflection.propertyinfo item in

properties)

1826

else

2730}31

return

liststr;32}

3334

獲取類中的字段
35

36///

37///

獲取類中的字段

38///

39///

所有欄位名稱

40public list getfields(t t)

4148 system.reflection.fieldinfo fields = t.gettype().getfields(bindingflags.nonpublic | bindingflags.public |bindingflags.instance);

49if (fields.length <= 0)50

53foreach (system.reflection.fieldinfo item in

fields)

5462

else

6366}67

return

liststr;

6869

70 }

利用反射獲取類的所有字段

以下是利用反射獲取類refpoint中所有的字段。一,refpoint類 public class refpoint public class class02 二,列印出所有類refpoint中的所有字段 refpoint refpoint01 new refpoint 3 type typeobj...

反射 獲取類及其父類中宣告的所有字段集合

關於class類中field getdeclaredfields jdk中解釋如下 返回field物件的乙個陣列,這些物件反映 此class物件所表示的類或介面所宣告的所有字段。如果存在多重繼承的情況,若要獲取包括父類中宣告的所有字段,可借助class類中classgetsuperclass 方法,...

反射 通過反射獲取類的完整結構

獲取執行時類的屬性 public class testfields 2 getdeclaredfields 能夠獲取執行時類本身中宣告的所有屬性 field fields1 clazz.getdeclaredfields for field f fields1 許可權修飾符,變數型別,變數名 獲取屬...