Delen via


Dynamische methoden en assembly's verzenden

In deze sectie wordt een set beheerde typen in de System.Reflection.Emit naamruimte beschreven waarmee een compiler of hulpprogramma metagegevens en algemene tussentaal (CIL) tijdens runtime kan verzenden en eventueel een draagbaar uitvoerbaar bestand (PE) op schijf kan genereren. Scriptengines en -compilers zijn de primaire gebruikers van deze naamruimte. In deze sectie wordt de functionaliteit van de System.Reflection.Emit naamruimte aangeduid als weerspiegelingsuitzending.

Reflectie-emit biedt de volgende mogelijkheden:

  • Definieer lichtgewicht globale methoden tijdens runtime, met behulp van de DynamicMethod klasse en voer deze uit met gemachtigden.
  • Definieer assembly's tijdens runtime en voer ze vervolgens uit en/of sla ze op schijf op.
  • Definieer assembly's tijdens runtime, voer ze uit en verwijder ze en laat garbagecollection hun resources vrijmaken.
  • Definieer modules in nieuwe assembly's tijdens runtime en voer ze vervolgens uit en/of sla ze op schijf op.
  • Definieer typen in modules tijdens runtime, maak exemplaren van deze typen en roep hun methoden aan.
  • Definieer symbolische informatie voor gedefinieerde modules die kunnen worden gebruikt door hulpprogramma's zoals foutopsporingsprogramma's en code profilers.

Naast de beheerde typen in de System.Reflection.Emit naamruimte zijn er niet-beheerde metagegevensinterfaces die worden beschreven in de referentiedocumentatie voor metagegevensinterfaces . Beheerde reflectie-emit biedt sterkere semantische foutcontrole en een hoger abstractieniveau van de metagegevens dan de niet-beheerde metagegevensinterfaces.

Een andere nuttige bron voor het werken met metagegevens en CIL is de DOCUMENTATIE van Common Language Infrastructure (CLI), met name Partition II: Metadata Definition and Semantics en Partition III: CIL Instruction Set. De documentatie is online beschikbaar op de Website van Ecma.

Verwijzing

OpCodes
Catalogiseert de CIL-instructiecodes die u kunt gebruiken om methodeteksten te bouwen.

System.Reflection.Emit
Bevat beheerde klassen die worden gebruikt voor het verzenden van dynamische methoden, assembly's en typen.

Type
Beschrijft de Type klasse, die de typen beheerde reflectie en weerspiegeling vertegenwoordigt en die essentieel is voor het gebruik van deze technologieën.

System.Reflection
Bevat beheerde klassen die worden gebruikt om metagegevens en beheerde code te verkennen.