ILGenerator 類別

定義

產生 Microsoft Intermediate Language (MSIL) 指令。

public ref class ILGenerator
public ref class ILGenerator : System::Runtime::InteropServices::_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 Class ILGenerator
Public Class ILGenerator
Implements _ILGenerator
繼承
ILGenerator
屬性
實作

備註

ILGenerator 用來為 動態元件中的方法和建構函式產生方法主體, (由 和 類別表示 MethodBuilder 的 和 ConstructorBuilder 類別) ,以及由 類別) 表示的獨立動態方法 DynamicMethod (。 若要取得 ILGenerator ,請使用 ConstructorBuilder.GetILGeneratorDynamicMethod.GetILGeneratorMethodBuilder.GetILGenerator 方法。

MSIL 會作為 Just-In-Time (JIT) 編譯器的輸入。

屬性

ILOffset

在由 ILGenerator 發出的 Microsoft intermediate language (MSIL) 資料流中,取得目前位移 (以位元組為單位)。

方法

BeginCatchBlock(Type)

開始 Catch 區塊。

BeginExceptFilterBlock()

為篩選的例外狀況開始例外狀況區塊。

BeginExceptionBlock()

為非篩選的例外狀況開始例外狀況區塊。

BeginFaultBlock()

在 Microsoft Intermediate Language (MSIL) 資料流上開始例外狀況錯誤區塊。

BeginFinallyBlock()

在 Microsoft Intermediate Language (MSIL) 指令資料流中開始 finally 區塊。

BeginScope()

開始語彙範圍 (Lexical Scope)。

DeclareLocal(Type)

宣告指定型別的區域變數。

DeclareLocal(Type, Boolean)

宣告指定型別的區域變數,選擇性固定 (Pin) 變數所參考的物件。

DefineLabel()

宣告新的標記。

Emit(OpCode)

放置指定的指令到指令資料流中。

Emit(OpCode, Byte)

放置指定的指令和字元引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, ConstructorInfo)

放置指定建構函式的指定指令和中繼資料 (Metadata) 語彙基元到指令的 Microsoft Intermediate Language (MSIL) 資料流中。

Emit(OpCode, Double)

放置指定的指令和數值引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, FieldInfo)

放置指定欄位的指定指令和中繼資料語彙基元到指令的 Microsoft Intermediate Language (MSIL) 資料流中。

Emit(OpCode, Int16)

放置指定的指令和數值引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, Int32)

放置指定的指令和數值引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, Int64)

放置指定的指令和數值引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, Label)

放置指定的指令到 Microsoft Intermediate Language (MSIL) 資料流中,並留下空間,以便在完成修復時加入標記。

Emit(OpCode, Label[])

放置指定的指令到 Microsoft Intermediate Language (MSIL) 資料流中,並留下空間,以便在完成修復時加入標記。

Emit(OpCode, LocalBuilder)

放置指定的指令到 Microsoft Intermediate Language (MSIL) 資料流,然後放置指定區域變數的索引。

Emit(OpCode, MethodInfo)

放置指定的指令到 Microsoft Intermediate Language (MSIL) 資料流,然後放置指定方法的中繼資料語彙基元。

Emit(OpCode, SByte)

放置指定的指令和字元引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, SignatureHelper)

放置指定的指令和簽章語彙基元到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, Single)

放置指定的指令和數值引數到指令的 Microsoft Intermediate Language (MSIL) 資料流。

Emit(OpCode, String)

放置指定的指令到 Microsoft Intermediate Language (MSIL) 資料流,然後放置指定字串的中繼資料語彙基元。

Emit(OpCode, Type)

放置指定的指令到 Microsoft Intermediate Language (MSIL) 資料流,然後放置指定型別的中繼資料語彙基元。

EmitCall(OpCode, MethodInfo, Type[])

callcallvirt 指令放置於 Microsoft Intermediate Language (MSIL) 資料流中,以呼叫 varargs 方法。

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

指定間接呼叫的 Unmanaged 呼叫慣例,將 Calli 指令放置到 Microsoft Intermediate Language (MSIL) 資料流中。

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

指定間接呼叫的 Managed 呼叫慣例,將 Calli 指令放置到 Microsoft Intermediate Language (MSIL) 資料流中。

EmitWriteLine(FieldInfo)

發出以指定欄位呼叫 WriteLine 所需的 Microsoft Intermediate Language (MSIL)。

EmitWriteLine(LocalBuilder)

發出以指定本機變數呼叫 WriteLine 所需的 Microsoft 中繼語言 (MSIL)。

EmitWriteLine(String)

發出 Microsoft Intermediate Language (MSIL),以字串呼叫 WriteLine

EndExceptionBlock()

結束例外狀況區塊。

EndScope()

結束語彙範圍。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MarkLabel(Label)

以指定標記來標示 Microsoft Intermediate Language (MSIL) 資料流的目前位置。

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

標記 Microsoft Intermediate Language (MSIL) 資料流中的序列點。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ThrowException(Type)

發出擲回例外狀況的指令。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
UsingNamespace(String)

指定要用來評估區域變數的命名空間 (Namespace),並注意目前作用的語彙範圍。

明確介面實作

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

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。

_ILGenerator.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取物件的類型資訊,可以用來取得介面的類型資訊。

_ILGenerator.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。

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

提供物件所公開的屬性和方法的存取權。

適用於