Name
ILGenerator
Synopsis
This class generates MSIL (Microsoft Intermediate Language)
instructions. You receive an ILGenerator
object from a GetILGenerator
method in a builder class. For
example, you can use the ConstructorBuilder.GetILGenerator()
to
create MSIL instructions for a constructor, or MethodBuilder.GetILGenerator()
to create
MSIL instructions for a method.
Use BeginScope()
and EndScope()
to start
and stop a lexical scope.
To emit instructions, use the Emit()
method.
The Emit()
method requires
an OpCode
object. The easiest
way to supply this is by using one of the constant fields from OpCodes
, as in myGenerator.Emit(OpCodes.Ret);
. EmitWriteLine()
creates
the MSIL code required to call System.Console.WriteLine()
with the supplied variable. You can also define and mark labels in the
instruction stream
(DefineLabel()
and MarkLabel()
), emit an
instruction for throwing an exception
(ThrowException()
), and
define local variables
(DeclareLocal()
).
Emit error handling blocks with BeginExceptionBlock()
and EndExceptionBlock()
(which
emits the
equivalent of a VB.NET Try
statement), BeginCatchBlock()
(which emits the
equivalent of the Catch
statement), and BeginFinallyBlock()
(which emits the
equivalent of the Finally
statement). You must end the
exception block using EndExceptionBlock()
.
Public Class ILGenerator ' Public Instance Methods Overridable Public Sub BeginCatchBlock( ByVal exceptionType As Type) Overridable Public Sub BeginExceptFilterBlock() Overridable Public Function ...
Get VB.NET Core Classes in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.