Dela via


Generera dynamiska metoder och sammansättningar

I det här avsnittet beskrivs en uppsättning hanterade typer i System.Reflection.Emit namnområdet som gör det möjligt för en kompilator eller ett verktyg att generera metadata och ett gemensamt mellanliggande språk (CIL) vid körning och eventuellt generera en portabel körbar fil (PE) på disken. Skriptmotorer och kompilatorer är de primära användarna av det här namnområdet. I det här avsnittet kallas funktionen som tillhandahålls av System.Reflection.Emit namnområdet för reflektionsemitta.

Reflektionsemitten ger följande funktioner:

  • Definiera enkla globala metoder vid körning med hjälp av DynamicMethod klassen och kör dem med hjälp av ombud.
  • Definiera sammansättningar vid körning och kör dem och/eller spara dem på disk.
  • Definiera sammansättningar vid körning, kör dem och ta sedan bort dem och tillåt skräpinsamling att frigöra sina resurser.
  • Definiera moduler i nya sammansättningar vid körning och kör sedan och/eller spara dem på disk.
  • Definiera typer i moduler vid körning, skapa instanser av dessa typer och anropa deras metoder.
  • Definiera symbolisk information för definierade moduler som kan användas av verktyg som felsökningsprogram och kodprofiler.

Förutom de hanterade typerna System.Reflection.Emit i namnområdet finns det ohanterade metadatagränssnitt som beskrivs i referensdokumentationen för metadatagränssnitt . Den hanterade reflektionsemittenten ger starkare semantisk felkontroll och en högre abstraktionsnivå av metadata än de ohanterade metadatagränssnitten.

En annan användbar resurs för att arbeta med metadata och CIL är CLI-dokumentationen (Common Language Infrastructure), särskilt "Partition II: Metadata Definition and Semantics" och "Partition III: CIL Instruction Set". Dokumentationen finns online på Ecma-webbplatsen.

Referens

OpCodes
Katalogiserar de CIL-instruktionskoder som du kan använda för att skapa metodkroppar.

System.Reflection.Emit
Innehåller hanterade klasser som används för att generera dynamiska metoder, sammansättningar och typer.

Type
Beskriver Type klassen, som representerar typer i hanterad reflektion och reflektion, och som är nyckeln till användningen av dessa tekniker.

System.Reflection
Innehåller hanterade klasser som används för att utforska metadata och hanterad kod.