Emitowanie dynamicznych metod i zestawów

W tej sekcji opisano zestaw typów zarządzanych w System.Reflection.Emit przestrzeni nazw, który umożliwia kompilatorowi lub narzędziu emitowanie metadanych i wspólnego języka pośredniego (CIL) w czasie wykonywania oraz opcjonalnie generowanie przenośnego pliku wykonywalnego (PE) na dysku. Aparaty skryptów i kompilatory są podstawowymi użytkownikami tej przestrzeni nazw. W tej sekcji funkcje udostępniane przez System.Reflection.Emit przestrzeń nazw są określane jako emitowane odbicia.

Emit Emocje ion zapewnia następujące możliwości:

  • Zdefiniuj lekkie metody globalne w czasie wykonywania przy użyciu DynamicMethod klasy i wykonaj je przy użyciu delegatów.
  • Zdefiniuj zestawy w czasie wykonywania, a następnie uruchom je i/lub zapisz je na dysku.
  • Zdefiniuj zestawy w czasie wykonywania, uruchom je, a następnie zwolnij je i zezwól na odzyskiwanie zasobów przez odzyskiwanie pamięci.
  • Zdefiniuj moduły w nowych zestawach w czasie wykonywania, a następnie uruchom i/lub zapisz je na dysku.
  • Definiowanie typów w modułach w czasie wykonywania, tworzenie wystąpień tych typów i wywoływanie ich metod.
  • Zdefiniuj informacje symboliczne dla zdefiniowanych modułów, które mogą być używane przez narzędzia, takie jak debugery i profileery kodu.

Oprócz typów zarządzanych w System.Reflection.Emit przestrzeni nazw istnieją niezarządzane interfejsy metadanych, które są opisane w dokumentacji referencyjnej interfejsów metadanych. Emisja odbicia zarządzanego zapewnia silniejsze sprawdzanie błędów semantycznych i wyższy poziom abstrakcji metadanych niż niezarządzane interfejsy metadanych.

Innym przydatnym zasobem do pracy z metadanymi i funkcją CIL jest dokumentacja infrastruktury języka wspólnego (CLI), szczególnie "Partition II: Metadata Definition and Semantics" (Partycja III: zestaw instrukcji CIL). Dokumentacja jest dostępna w trybie online w witrynie sieci Web Ecma.

Odwołanie

OpCodes
Kataloguje kody instrukcji CIL, których można użyć do kompilowania treści metod.

System.Reflection.Emit
Zawiera klasy zarządzane używane do emitowania metod dynamicznych, zestawów i typów.

Type
Opisuje klasę Type reprezentującą typy w zarządzanym odbiciu i emisji odbicia oraz kluczem do korzystania z tych technologii.

System.Reflection
Zawiera klasy zarządzane używane do eksplorowania metadanych i kodu zarządzanego.