Členy třídy

Reflexe

SSŠVT


Datové typy popisující členy třídy (typu)

Členy třídy

Datový typ Type, který v .NETu reprezentuje typ, najdeme ve jmenném prostoru System. Většina dalších datových typů, které souvisí s reflexí, však patří do jmenného prostoru System.Reflection.

Následující tabulka ukazuje pár základních typů, které reflektují členy určité třídy.


Vybrané třídy, které přímo nebo nepřímo dědí z MemberInfo
Třída Popis
FieldInfo Reprezentuje proměnnou (datový člen třídy)
ConstructorInfo Reprezentuje konstruktor
PropertyInfo Reprezentuje vlastnost
MethodInfo Reprezentuje metodu

Dále uvedeme pro každý z těchto typů popisujících členy třídy pár podstatných vlastností a metod.


Proměnná (field) jako člen třídy

Typ System.Reflection.FieldInfo
Vlastnost Popis
Vlastnosti FieldType Typ této proměnné (proměnné instance nebo statické proměnné)
Name Název proměnné
DeclaringType Typ (třída), kde je tato proměnná definována
ReflectedType Typ (třída), ze kterého se informace o této proměnné čerpají
IsStatic True :-: proměnná je statická, false :-: proměnná je přístupná přes instanci definujícího typu
IsPrivate True :-: proměnná je private, false :-: není private
IsFamily True :-: proměnná je protected, false :-: není protected
IsPublic True :-: proměnná je public, false :-: není public
Metody GetValue Vrátí hodnotu proměnné (pro statickou proměnnou se jako parametr předá null, je-li to proměnná instance, předáme objekt, jehož data chceme získat)
SetValue Nastaví hodnotu proměnné (pro statickou proměnnou je první parametr null, druhý určuje hodnotu, kterou chceme nastavit, u proměnné instance je první parametr odkaz na objekt, jehož data chceme nastavit, druhý parametr jsou data)

Konstruktor (constructor)

Typ System.Reflection.ConstructorInfo
Vlastnost Popis
Vlastnosti Name Název metody konstruktoru (.ctor)
DeclaringType Typ (třída), kde je tento konstruktor definován
ReflectedType Typ (třída), ze kterého se informace o tomto konstruktoru čerpají
IsPrivate True :-: konstruktor je private, false :-: není private
IsFamily True :-: konstruktor je protected, false :-: není protected
IsPublic True :-: konstruktor je public, false :-: není public
Metody GetParameters Vrátí pole objektů ParameterInfo definující parametry tohoto konstruktoru
Invoke Zavolá konstruktor a předá mu parametry předané této metodě, vrátí odkaz na nově vytvořenou instanci reflektované třídy

Vlastnost (property)

Typ System.Reflection.PropertyInfo
Vlastnost Popis
Vlastnosti PropertyType Typ této vlastnosti
Name Název vlastnosti
DeclaringType Typ (třída), kde je tato vlastnost definována
ReflectedType Typ (třída), ze kterého se informace o této vlastnosti čerpají
CanRead True :-: hodnotu vlastnosti lze přečíst (má getter), false :-: hodnotu vlastnosti nelze číst
CanWrite True :-: do vlastnosti lze zapsat novou hodnotu (má setter), false :-: do vlastnosti nelze zapisovat (je readonly)
GetMethod Vrátí objekt MethodInfo reprezentující metodu pro zjištění hodnoty této vlastnosti (její getter)
SetMethod Vrátí objekt MethodInfo reprezentující metodu pro nastavení hodnoty této vlastnosti (její setter)
Metody GetValue Vrátí hodnotu vlastnosti (pro statickou vlastnost se jako parametr předá null, je-li to vlastnost instance, předáme objekt, jehož data chceme získat)
SetValue Nastaví hodnotu vlastnosti (pro statickou vlastnost je první parametr null, druhý určuje hodnotu, kterou chceme nastavit, u vlastnosti instance je první parametr odkaz na objekt, jehož data chceme nastavit, druhý parametr jsou data)

Poznámka:
Pokud chceme zjistit, zda je daná vlastnost statická, či patří instanci svého typu, zda je veřejná, nebo privátní atd., musíme se na tyto informace dotázat jejího getteru a setteru (viz GetMethod a SetMethod).


Metoda (method)

Typ System.Reflection.MethodInfo
Vlastnost Popis
Vlastnosti ReturnType Typ návratové hodnoty této metody
Name Název metody
DeclaringType Typ (třída), kde je tato metoda definována
ReflectedType Typ (třída), ze kterého se informace o této metodě čerpají
IsPrivate True :-: metoda je private, false :-: není private
IsFamily True :-: metoda je protected, false :-: není protected
IsPublic True :-: metoda je public, false :-: není public
IsStatic True :-: metoda je statická, false :-: není statická
IsAbstract True :-: metoda je abstraktní, false :-: není abstraktní
IsVirtual True :-: metoda je virtuální, false :-: není virtuální
Metody GetParameters Vrátí pole objektů ParameterInfo definující parametry této metody
Invoke Zavolá metodu danou tímto objektem MethodInfo a předá jí parametry předané metodě Invoke, vrátí to, co volaná metoda vrátila, přičemž u statické metody předáme do Invoke jako první parametr null, u metody instance předáme jako první parametr objekt, pro který chceme metodu reprezentovanou tímto MethodInfo zavolat