Generování dynamických metod a sestavení

Tato část popisuje sadu spravovaných typů v System.Reflection.Emit oboru názvů, které kompilátoru nebo nástroji umožňují generovat metadata a běžný zprostředkující jazyk (CIL) za běhu a volitelně generovat přenosný spustitelný soubor (PE) na disku. Skriptovací moduly a kompilátory jsou primárními uživateli tohoto oboru názvů. V této části se funkce poskytované oborem System.Reflection.Emit názvů označují jako generování reflexe.

generování Reflexe ion poskytuje následující možnosti:

  • Definujte zjednodušené globální metody za běhu pomocí DynamicMethod třídy a spusťte je pomocí delegátů.
  • Definujte sestavení za běhu a pak je spusťte a/nebo je uložte na disk.
  • Definujte sestavení za běhu, spusťte je a pak je rozbalte a povolte uvolnění paměti, aby se jejich prostředky uvolnit.
  • Definujte moduly v nových sestaveních za běhu a pak je spusťte nebo uložte na disk.
  • Definujte typy v modulech za běhu, vytvořte instance těchto typů a volejte jejich metody.
  • Definujte symbolické informace pro definované moduly, které můžou používat nástroje, jako jsou ladicí programy a profilátory kódu.

Kromě spravovaných typů v System.Reflection.Emit oboru názvů existují nespravovaná rozhraní metadat, která jsou popsaná v referenční dokumentaci k rozhraním metadat. Generování spravovaných reflexí poskytuje silnější sémantickou kontrolu chyb a vyšší úroveň abstrakce metadat než nespravovaná rozhraní metadat.

Dalším užitečným prostředkem pro práci s metadaty a CIL je dokumentace k Common Language Infrastructure (CLI), zejména oddíl II: Definice metadat a sémantika a Oddíl III: Instrukční sada CIL. Dokumentace je k dispozici online na webu Ecma.

Reference

OpCodes
Kataloguje kódy instrukcí CIL, které můžete použít k sestavení těla metody.

System.Reflection.Emit
Obsahuje spravované třídy používané k generování dynamických metod, sestavení a typů.

Type
Popisuje Type třídu, která představuje typy ve spravované reflexi a generování reflexe a která je klíčem k použití těchto technologií.

System.Reflection
Obsahuje spravované třídy používané k prozkoumání metadat a spravovaného kódu.