Show / Hide Table of Contents

    Class CecilILGenerator

    A variant of ILGenerator which uses Mono.Cecil under the hood.

    Inheritance
    System.Object
    ILGeneratorShim
    CecilILGenerator
    Inherited Members
    ILGeneratorShim.GetProxy()
    ILGeneratorShim.GetProxyType<TShim>()
    ILGeneratorShim.GetProxyType(Type)
    ILGeneratorShim.ProxyType
    Namespace: MonoMod.Utils.Cil
    Assembly: MonoMod.Utils.dll
    Syntax
    public sealed class CecilILGenerator : ILGeneratorShim

    Constructors

    CecilILGenerator(ILProcessor)

    Declaration
    public CecilILGenerator(ILProcessor il)
    Parameters
    Type Name Description
    Mono.Cecil.Cil.ILProcessor il

    Fields

    IL

    The underlying Mono.Cecil.Cil.ILProcessor.

    Declaration
    public readonly ILProcessor IL
    Field Value
    Type Description
    Mono.Cecil.Cil.ILProcessor

    Properties

    ILOffset

    Declaration
    public override int ILOffset { get; }
    Property Value
    Type Description
    System.Int32
    Overrides
    ILGeneratorShim.ILOffset

    Methods

    BeginCatchBlock(Type)

    Declaration
    public override void BeginCatchBlock(Type exceptionType)
    Parameters
    Type Name Description
    System.Type exceptionType
    Overrides
    ILGeneratorShim.BeginCatchBlock(Type)

    BeginExceptFilterBlock()

    Declaration
    public override void BeginExceptFilterBlock()
    Overrides
    ILGeneratorShim.BeginExceptFilterBlock()

    BeginExceptionBlock()

    Declaration
    public override Label BeginExceptionBlock()
    Returns
    Type Description
    System.Reflection.Emit.Label
    Overrides
    ILGeneratorShim.BeginExceptionBlock()

    BeginFaultBlock()

    Declaration
    public override void BeginFaultBlock()
    Overrides
    ILGeneratorShim.BeginFaultBlock()

    BeginFinallyBlock()

    Declaration
    public override void BeginFinallyBlock()
    Overrides
    ILGeneratorShim.BeginFinallyBlock()

    BeginScope()

    Declaration
    public override void BeginScope()
    Overrides
    ILGeneratorShim.BeginScope()

    DeclareLocal(Type)

    Declaration
    public override LocalBuilder DeclareLocal(Type type)
    Parameters
    Type Name Description
    System.Type type
    Returns
    Type Description
    System.Reflection.Emit.LocalBuilder
    Overrides
    ILGeneratorShim.DeclareLocal(Type)

    DeclareLocal(Type, Boolean)

    Declaration
    public override LocalBuilder DeclareLocal(Type type, bool pinned)
    Parameters
    Type Name Description
    System.Type type
    System.Boolean pinned
    Returns
    Type Description
    System.Reflection.Emit.LocalBuilder
    Overrides
    ILGeneratorShim.DeclareLocal(Type, Boolean)

    DefineLabel()

    Declaration
    public override Label DefineLabel()
    Returns
    Type Description
    System.Reflection.Emit.Label
    Overrides
    ILGeneratorShim.DefineLabel()

    Emit(OpCode)

    Declaration
    public override void Emit(OpCode opcode)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    Overrides
    ILGeneratorShim.Emit(OpCode)

    Emit(OpCode, Byte)

    Declaration
    public override void Emit(OpCode opcode, byte arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Byte arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Byte)

    Emit(OpCode, Double)

    Declaration
    public override void Emit(OpCode opcode, double arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Double arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Double)

    Emit(OpCode, Int16)

    Declaration
    public override void Emit(OpCode opcode, short arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Int16 arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Int16)

    Emit(OpCode, Int32)

    Declaration
    public override void Emit(OpCode opcode, int arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Int32 arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Int32)

    Emit(OpCode, Int64)

    Declaration
    public override void Emit(OpCode opcode, long arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Int64 arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Int64)

    Emit(OpCode, ConstructorInfo)

    Declaration
    public override void Emit(OpCode opcode, ConstructorInfo arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.ConstructorInfo arg
    Overrides
    ILGeneratorShim.Emit(OpCode, ConstructorInfo)

    Emit(OpCode, Label)

    Declaration
    public override void Emit(OpCode opcode, Label label)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.Emit.Label label
    Overrides
    ILGeneratorShim.Emit(OpCode, Label)

    Emit(OpCode, Label[])

    Declaration
    public override void Emit(OpCode opcode, Label[] labels)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.Emit.Label[] labels
    Overrides
    ILGeneratorShim.Emit(OpCode, Label[])

    Emit(OpCode, LocalBuilder)

    Declaration
    public override void Emit(OpCode opcode, LocalBuilder local)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.Emit.LocalBuilder local
    Overrides
    ILGeneratorShim.Emit(OpCode, LocalBuilder)

    Emit(OpCode, SignatureHelper)

    Declaration
    public override void Emit(OpCode opcode, SignatureHelper signature)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.Emit.SignatureHelper signature
    Overrides
    ILGeneratorShim.Emit(OpCode, SignatureHelper)

    Emit(OpCode, FieldInfo)

    Declaration
    public override void Emit(OpCode opcode, FieldInfo arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.FieldInfo arg
    Overrides
    ILGeneratorShim.Emit(OpCode, FieldInfo)

    Emit(OpCode, MethodInfo)

    Declaration
    public override void Emit(OpCode opcode, MethodInfo arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.MethodInfo arg
    Overrides
    ILGeneratorShim.Emit(OpCode, MethodInfo)

    Emit(OpCode, SByte)

    Declaration
    public override void Emit(OpCode opcode, sbyte arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.SByte arg
    Overrides
    ILGeneratorShim.Emit(OpCode, SByte)

    Emit(OpCode, Single)

    Declaration
    public override void Emit(OpCode opcode, float arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Single arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Single)

    Emit(OpCode, String)

    Declaration
    public override void Emit(OpCode opcode, string arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.String arg
    Overrides
    ILGeneratorShim.Emit(OpCode, String)

    Emit(OpCode, Type)

    Declaration
    public override void Emit(OpCode opcode, Type arg)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Type arg
    Overrides
    ILGeneratorShim.Emit(OpCode, Type)

    EmitCall(OpCode, MethodInfo, Type[])

    Declaration
    public override void EmitCall(OpCode opcode, MethodInfo methodInfo, Type[] optionalParameterTypes)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.MethodInfo methodInfo
    System.Type[] optionalParameterTypes
    Overrides
    ILGeneratorShim.EmitCall(OpCode, MethodInfo, Type[])

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

    Declaration
    public override void EmitCalli(OpCode opcode, CallingConventions callingConvention, Type returnType, Type[] parameterTypes, Type[] optionalParameterTypes)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Reflection.CallingConventions callingConvention
    System.Type returnType
    System.Type[] parameterTypes
    System.Type[] optionalParameterTypes
    Overrides
    ILGeneratorShim.EmitCalli(OpCode, CallingConventions, Type, Type[], Type[])

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

    Declaration
    public override void EmitCalli(OpCode opcode, CallingConvention unmanagedCallConv, Type returnType, Type[] parameterTypes)
    Parameters
    Type Name Description
    System.Reflection.Emit.OpCode opcode
    System.Runtime.InteropServices.CallingConvention unmanagedCallConv
    System.Type returnType
    System.Type[] parameterTypes
    Overrides
    ILGeneratorShim.EmitCalli(OpCode, CallingConvention, Type, Type[])

    EmitWriteLine(LocalBuilder)

    Declaration
    public override void EmitWriteLine(LocalBuilder localBuilder)
    Parameters
    Type Name Description
    System.Reflection.Emit.LocalBuilder localBuilder
    Overrides
    ILGeneratorShim.EmitWriteLine(LocalBuilder)

    EmitWriteLine(FieldInfo)

    Declaration
    public override void EmitWriteLine(FieldInfo field)
    Parameters
    Type Name Description
    System.Reflection.FieldInfo field
    Overrides
    ILGeneratorShim.EmitWriteLine(FieldInfo)

    EmitWriteLine(String)

    Declaration
    public override void EmitWriteLine(string value)
    Parameters
    Type Name Description
    System.String value
    Overrides
    ILGeneratorShim.EmitWriteLine(String)

    EndExceptionBlock()

    Declaration
    public override void EndExceptionBlock()
    Overrides
    ILGeneratorShim.EndExceptionBlock()

    EndScope()

    Declaration
    public override void EndScope()
    Overrides
    ILGeneratorShim.EndScope()

    MarkLabel(Label)

    Declaration
    public override void MarkLabel(Label loc)
    Parameters
    Type Name Description
    System.Reflection.Emit.Label loc
    Overrides
    ILGeneratorShim.MarkLabel(Label)

    ThrowException(Type)

    Declaration
    public override void ThrowException(Type type)
    Parameters
    Type Name Description
    System.Type type
    Overrides
    ILGeneratorShim.ThrowException(Type)

    UsingNamespace(String)

    Declaration
    public override void UsingNamespace(string usingNamespace)
    Parameters
    Type Name Description
    System.String usingNamespace
    Overrides
    ILGeneratorShim.UsingNamespace(String)
    Back to top Yet another C# modding swiss army knife.