Č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 |