Členy třídy
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.
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 |