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 C# 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
public virtual void BeginCatchBlock(Type exceptionType);
public virtual void BeginExceptFilterBlock( );
public virtual Label BeginExceptionBlock ...