Udostępnij za pośrednictwem


Odbicie (C# i Visual Basic)

Odbicie zawiera obiekty (typu Type) opisują zestawów, moduły i typów.Można użyć odbicie dynamicznie utworzyć wystąpienia typu, powiązać typu obiektu, lub pobrać typu z istniejącego obiektu i wywołanie jej metod lub uzyskać dostęp do jego pól i właściwości.Jeśli używasz atrybutów w kodzie odbicie pozwala uzyskać do nich dostęp.Aby uzyskać więcej informacji, zobacz Rozszerzanie metadanych za pomocą atrybutów.

Poniżej przedstawiono prosty przykład odbicia za pomocą metody statycznej GetType - dziedziczone przez wszystkie typy z Object base class - uzyskanie typu zmiennej:

' Using GetType to obtain type information: 
Dim i As Integer = 42
Dim type As System.Type = i.GetType()
System.Console.WriteLine(type)
// Using GetType to obtain type information: 
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);

Dane wyjściowe są:

System.Int32

Poniższy przykład używa przed powielaniem w protokole do uzyskania pełnej nazwy zestawu załadowany.

' Using Reflection to get information from an Assembly: 
Dim info As System.Reflection.Assembly = GetType(System.Int32).Assembly
System.Console.WriteLine(info)
// Using Reflection to get information from an Assembly:
System.Reflection.Assembly info = typeof(System.Int32).Assembly;
System.Console.WriteLine(info);

Dane wyjściowe są:

mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

[!UWAGA]

Słowa kluczowe języka C# protected i internal w IL nie mają żadnego znaczenia i nie są używane w odbicie interfejsów API.Są odpowiednie warunki IL rodziny i Zgromadzenia.Aby zidentyfikować internal przy użyciu odbicia, użyj metody IsAssembly właściwości.Aby zidentyfikować protected internal metodę, użyj IsFamilyOrAssembly.

Omówienie odbicia

Odbicia jest przydatne w następujących sytuacjach:

Sekcje pokrewne

Aby uzyskać więcej informacji:

Zobacz też

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Przewodnik programowania w Visual Basic

Domeny aplikacji (C# i Visual Basic)

Zestawy w środowisku uruchomieniowym języka wspólnego