ILGenerator Osztály

Definíció

Microsoft köztes nyelv (MSIL) utasításait hozza létre.

public ref class ILGenerator abstract
public ref class ILGenerator
public ref class ILGenerator : System::Runtime::InteropServices::_ILGenerator
public abstract class ILGenerator
public class ILGenerator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public class ILGenerator : System.Runtime.InteropServices._ILGenerator
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public class ILGenerator : System.Runtime.InteropServices._ILGenerator
type ILGenerator = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type ILGenerator = class
    interface _ILGenerator
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ILGenerator = class
    interface _ILGenerator
Public MustInherit Class ILGenerator
Public Class ILGenerator
Public Class ILGenerator
Implements _ILGenerator
Öröklődés
ILGenerator
Attribútumok
Megvalósítás

Megjegyzések

ILGeneratormetódustestek létrehozására szolgál a dinamikus szerelvényekben (az és MethodBuilder osztályok ConstructorBuilder által képviselt) metódusok és konstruktorok, valamint önálló dinamikus metódusok (az DynamicMethod osztály által képviselt) számára. A lekéréshez ILGeneratorhasználja a , ConstructorBuilder.GetILGeneratorés DynamicMethod.GetILGenerator a MethodBuilder.GetILGeneratormetódusokat.

Az MSIL-t egy igény szerinti (JIT) fordító bemeneteként használják.

Warning

Az IL metódust előállító ILGenerator API-kra az alapszintű ellenőrzésen kívül nincs korlátozás. Ha nem megbízható bemenetet használnak az IL előállításához:

  • Az IL és a metaadatok tartalmazhatnak a fogyasztó által megadott titkos kulcsokat.
  • Az IL érvénytelen lehet, például nem rendelkezik kiegyensúlyozott leküldéssel és pop opcode-okkal, vagy érvénytelen operandusokkal egy adott opcode esetében.
  • Az IL bármilyen olyan kódot tartalmazhat, amely lehet például holtpont, végtelen verem rekurziója vagy végtelen ciklusa.
  • Az IL bármilyen más elérhető szerelvényen betölthet és végrehajthat kódot.

Az ilyen kód bármilyen műveletet végrehajthat a metódus betöltésekor és végrehajtásakor. Az ilyen biztonsági rések ILGenerator elleni védelemhez teljes mértékben megbízható, megbízható bemenettel rendelkező környezetre van szükség.

Konstruktorok

Name Description
ILGenerator()

Inicializálja a ILGenerator osztály új példányát.

Tulajdonságok

Name Description
ILOffset

A ILGenerator által kibocsátott Microsoft köztes nyelvi (MSIL) adatfolyamban bájtban adja le az aktuális eltolást.

Metódusok

Name Description
BeginCatchBlock(Type)

Elindít egy fogási blokkot.

BeginExceptFilterBlock()

Egy szűrt kivétel kivételblokkjának indítása.

BeginExceptionBlock()

Egy nem szűrt kivétel kivételblokkjának indítása.

BeginFaultBlock()

Elindít egy kivételhiba-blokkot a Microsoft köztes nyelvű (MSIL) streamben.

BeginFinallyBlock()

A Microsoft köztes nyelv (MSIL) utasításfolyamának utolsó blokkját kezdi el.

BeginScope()

Lexikális hatókört kezd.

CreateLabel(Int32)

Létrehoz egy Label adott azonosítót.

DeclareLocal(Type, Boolean)

Deklarálja a megadott típusú helyi változót, opcionálisan rögzítve a változó által hivatkozott objektumot.

DeclareLocal(Type)

A megadott típusú helyi változót deklarálja.

DefineLabel()

Új címkét deklarál.

Emit(OpCode, Byte)

A megadott utasítást és karakterargumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, ConstructorInfo)

A megadott konstruktor megadott utasítását és metaadat-jogkivonatát a Microsoft köztes nyelv (MSIL) utasításfolyamába helyezi.

Emit(OpCode, Double)

A megadott utasítást és numerikus argumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, FieldInfo)

A megadott mezőhöz megadott utasítást és metaadat-jogkivonatot a Microsoft köztes nyelv (MSIL) utasításfolyamába helyezi.

Emit(OpCode, Int16)

A megadott utasítást és numerikus argumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, Int32)

A megadott utasítást és numerikus argumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, Int64)

A megadott utasítást és numerikus argumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, Label)

A megadott utasítást a Microsoft köztes nyelv (MSIL) adatfolyamára helyezi, és a javítások során helyet hagy a címkének.

Emit(OpCode, Label[])

A megadott utasítást a Microsoft köztes nyelv (MSIL) adatfolyamára helyezi, és a javítások során helyet hagy a címkének.

Emit(OpCode, LocalBuilder)

A megadott utasítást a Microsoft köztes nyelv (MSIL) streamre helyezi, majd az adott helyi változó indexét.

Emit(OpCode, MethodInfo)

A megadott utasítást a Microsoft köztes nyelv (MSIL) adatfolyamára helyezi, majd az adott metódus metaadat-jogkivonatát.

Emit(OpCode, SByte)

A megadott utasítást és karakterargumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, SignatureHelper)

A megadott utasítást és egy aláírási jogkivonatot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, Single)

A megadott utasítást és numerikus argumentumot a Microsoft köztes nyelv (MSIL) utasításfolyamára helyezi.

Emit(OpCode, String)

A megadott utasítást a Microsoft köztes nyelv (MSIL) streamre helyezi, majd az adott sztring metaadat-jogkivonatát.

Emit(OpCode, Type)

A megadott utasítást a Microsoft köztes nyelv (MSIL) streamre helyezi, majd az adott típus metaadat-jogkivonatát.

Emit(OpCode)

A megadott utasítást az utasítások adatfolyamára helyezi.

EmitCall(OpCode, MethodInfo, Type[])

Egy call vagy callvirt utasítást helyez el a Microsoft köztes nyelv (MSIL) streamben egy varargs metódus meghívásához.

EmitCalli(OpCode, CallingConvention, Type, Type[])

Egy Calli utasítást helyez el a Microsoft köztes nyelvi (MSIL) streamre, amely meghatároz egy nem felügyelt hívási konvencióciót a közvetett híváshoz.

EmitCalli(OpCode, CallingConventions, Type, Type[], Type[])

Egy Calli utasítást helyez el a Microsoft köztes nyelv (MSIL) streamre, amely meghatároz egy felügyelt hívási konvencióciót a közvetett híváshoz.

EmitCalli(Type)

Microsoft köztes nyelv (MSIL) utasításait hozza létre.

EmitWriteLine(FieldInfo)

Kibocsátja a WriteLine adott mezővel való meghívásához szükséges Microsoft köztes nyelvet (MSIL).

EmitWriteLine(LocalBuilder)

A WriteLine adott helyi változóval való meghívásához szükséges Microsoft köztes nyelvet (MSIL) bocsátja ki.

EmitWriteLine(String)

Kibocsátja a Microsoft köztes nyelvet (MSIL) a WriteLine sztringgel való meghívásához.

EndExceptionBlock()

Véget vet egy kivételblokknak.

EndScope()

Véget vet egy lexikális hatókörnek.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MarkLabel(Label)

A Microsoft köztes nyelvi (MSIL) stream aktuális pozícióját az adott címkével jelöli meg.

MarkSequencePoint(ISymbolDocumentWriter, Int32, Int32, Int32, Int32)

Egy szekvenciapontot jelöl meg a Microsoft köztes nyelvű (MSIL) streamben.

MarkSequencePointCore(ISymbolDocumentWriter, Int32, Int32, Int32, Int32)

Ha egy származtatott osztályban felülbírál, a Microsoft köztes nyelvű (MSIL) streamben jelöl egy szekvenciapontot.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ThrowException(Type)

Utasítást ad ki egy kivétel kibocsátására.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
UsingNamespace(String)

Megadja a helyiek kiértékeléséhez és az aktuális aktív lexikális hatókör figyeléséhez használandó névteret.

Explicit interfész-implementációk

Name Description
_ILGenerator.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Névkészletet képez le a küldési azonosítók megfelelő készletére.

_ILGenerator.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek aztán a felület típusadatainak lekérésére használhatók.

_ILGenerator.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

_ILGenerator.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

A következőre érvényes: