Reflexe (C#)

Reflexe poskytuje objekty (typu Type ), které popisují sestavení, moduly a typy. Můžete použít reflexi k dynamickému vytvoření instance typu, svázání typu s existujícím objektem nebo získat typ z existujícího objektu a vyvolat jeho metody nebo získat přístup k jeho polím a vlastnostem. Pokud používáte atributy v kódu, reflexe vám umožní přístup k nim. Další informace najdete v tématu atributy.

Tady je jednoduchý příklad reflexe pomocí GetType() metody zděděné všemi typy ze Object základní třídy – pro získání typu proměnné:

Poznámka

Ujistěte se, že jste přidali using System; a using System.Reflection; v horní části souboru . cs .

// Using GetType to obtain type information:
int i = 42;
Type type = i.GetType();
Console.WriteLine(type);

Výstup je: System.Int32 .

Následující příklad používá reflexi k získání úplného názvu načteného sestavení.

// Using Reflection to get information of an Assembly:
Assembly info = typeof(int).Assembly;
Console.WriteLine(info);

Výstup je: System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e .

Poznámka

Klíčová slova jazyka C# protected a internal nemají žádný význam v rámci mezilehlého jazyka (IL) a nejsou použity v rozhraních API reflexe. Odpovídající výrazy v IL jsou rodina a sestavení. K identifikaci internal metody pomocí reflexe použijte IsAssembly vlastnost. K identifikaci protected internal metody použijte IsFamilyOrAssembly .

Přehled reflexe

Reflexe je užitečná v následujících situacích:

Další informace najdete tady:

Viz také