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.