Show / Hide Table of Contents

Class ILGeneratorExtensions

Contiene extensiones útiles para la generación de código por medio de la clase ILGenerator.

Inheritance
object
ILGeneratorExtensions
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: TheXDS.MCART.Types.Extensions
Assembly: MCART.TypeFactory.dll
Syntax
public static class ILGeneratorExtensions

Methods

| Edit this page View Source

Add(ILGenerator)

Inserta una operación de suma en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Add(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de suma.

| Edit this page View Source

Branch(ILGenerator, Label)

Inserta un salto de transferencia de control incondicional en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una etiqueta.

Declaration
public static ILGenerator Branch(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchEqual(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser igual al segundo.

Declaration
public static ILGenerator BranchEqual(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchEqualNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser igual al segundo.

Declaration
public static ILGenerator BranchEqualNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchFalse(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta, realizando el salto si el valor en la parte superior de la pila se evalúa como false.

Declaration
public static ILGenerator BranchFalse(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchFalseNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta, realizando el salto si el valor en la parte superior de la pila se evalúa como false.

Declaration
public static ILGenerator BranchFalseNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchGreaterThan(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser mayor que el segundo.

Declaration
public static ILGenerator BranchGreaterThan(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchGreaterThanNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser mayor que el segundo.

Declaration
public static ILGenerator BranchGreaterThanNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchGreaterThanOrEqual(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser mayor o igual que el segundo.

Declaration
public static ILGenerator BranchGreaterThanOrEqual(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchGreaterThanOrEqualNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser mayor o igual que el segundo.

Declaration
public static ILGenerator BranchGreaterThanOrEqualNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchLessThan(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser menor que el segundo.

Declaration
public static ILGenerator BranchLessThan(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchLessThanNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser menor que el segundo.

Declaration
public static ILGenerator BranchLessThanNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchLessThanOrEqual(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser menor o igual que el segundo.

Declaration
public static ILGenerator BranchLessThanOrEqual(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchLessThanOrEqualNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser menor o igual que el segundo.

Declaration
public static ILGenerator BranchLessThanOrEqualNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchNewLabel(ILGenerator, out Label)

Inserta un salto de transferencia de control incondicional en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta.

Declaration
public static ILGenerator BranchNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchNotEqual(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser distinto al segundo.

Declaration
public static ILGenerator BranchNotEqual(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchNotEqualNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta; realizando el salto si luego de comparar los dos valores en la parte superior de la pila, el primero resulta ser distinto al segundo.

Declaration
public static ILGenerator BranchNotEqualNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchTrue(ILGenerator, Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta, realizando el salto si el valor en la parte superior de la pila se evalúa como true.

Declaration
public static ILGenerator BranchTrue(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

BranchTrueNewLabel(ILGenerator, out Label)

Inserta un salto condicional de transferencia de control en la secuencia del lenguaje intermedio de Microsoft® (MSIL) a una nueva etiqueta, realizando el salto si el valor en la parte superior de la pila se evalúa como true.

Declaration
public static ILGenerator BranchTrueNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label

Nueva etiqueta que será el destino del salto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Call(ILGenerator, MethodInfo)

Inserta una llamada al método especificado.

Declaration
public static ILGenerator Call(this ILGenerator ilGen, MethodInfo method)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada al método estático.

MethodInfo method

Método a llamar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CallBaseCtor<TClass>(ILGenerator)

Inserta una llamada al constructor de instancia del tipo base sin argumentos en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CallBaseCtor<TClass>(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada al método de instancia.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
TClass

Clase desde la cual se llamará al constructor de instancia del tipo base.

| Edit this page View Source

CallBaseCtor<TClass>(ILGenerator, Type[], Action<ILGenerator>?)

Inserta una llamada al constructor de instancia especificado del tipo base en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CallBaseCtor<TClass>(this ILGenerator ilGen, Type[] baseCtorArgs, Action<ILGenerator>? parameterLoadCallback)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada al método de instancia.

Type[] baseCtorArgs

Arreglo de tipos de argumentos del constructor a llamar.

Action<ILGenerator> parameterLoadCallback

Llamada a ejecutar para insertar la carga de argumentos a pasar al constructor base.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
TClass

Clase desde la cual se llamará al constructor de instancia del tipo base.

Remarks

Al llamar a este método, se insertará automáticamente la llamada a la referencia actual (LoadArg0(ILGenerator)) cuando baseCtorArgs no sea una colección vacía y parameterLoadCallback haga referencia a un método a llamar para cargar los parámetros del constructor, o cuando baseCtorArgs sea una colección vacía y parameterLoadCallback se establezca en null. De lo contrario, deberá insertar la carga de Arg0 y todos los argumentos a pasar al constructor antes de realizar esta llamada.

| Edit this page View Source

CallVirt(ILGenerator, MethodInfo)

Inserta una llamada explícitamente virtual al método especificado.

Declaration
public static ILGenerator CallVirt(this ILGenerator ilGen, MethodInfo method)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada.

MethodInfo method

Método a llamar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Call<TMethod>(ILGenerator, Expression<Func<TMethod>>)

Inserta una llamada al método estático especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Call<TMethod>(this ILGenerator ilGen, Expression<Func<TMethod>> methodSelector) where TMethod : Delegate
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada al método estático.

Expression<Func<TMethod>> methodSelector

Expresión que permite seleccionar al método estático a llamar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
TMethod

Delegado que describe al método a llamar.

| Edit this page View Source

Call<TMethod>(ILGenerator, TMethod)

Inserta una llamada al método estático especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Call<TMethod>(this ILGenerator ilGen, TMethod method) where TMethod : Delegate
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada al método estático.

TMethod method

Método estático a llamar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
TMethod

Delegado que describe al método a llamar.

| Edit this page View Source

Call<TClass, TMethod>(ILGenerator, Expression<Func<TClass, TMethod>>)

Inserta una llamada al método de instancia especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Call<TClass, TMethod>(this ILGenerator ilGen, Expression<Func<TClass, TMethod>> methodSelector) where TMethod : Delegate
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada al método de instancia.

Expression<Func<TClass, TMethod>> methodSelector

Expresión que permite seleccionar al método de instancia a llamar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
TClass

Clase en la que reside el método de instancia.

TMethod

Delegado que describe al método a llamar.

| Edit this page View Source

CastAsByte(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo byte en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsByte(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsDouble(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo double en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsDouble(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsFloat(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo float en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsFloat(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsInt(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo int en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsInt(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsLong(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo long en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsLong(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsSByte(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo sbyte en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsSByte(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsShort(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo short en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsShort(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsUInt(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo uint en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsUInt(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsULong(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo ulong en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsULong(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CastAsUShort(ILGenerator)

Inserta una operación que convertirá el valor en la parte superior de la pila en un valor de tipo ushort en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CastAsUShort(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CompareEqual(ILGenerator)

Inserta una operación de comparación de igualdad entre dos valores en la parte superior de la pila en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CompareEqual(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CompareGreaterThan(ILGenerator)

Inserta una operación de comparación entre dos valores en la parte superior de la pila en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CompareGreaterThan(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

CompareLessThan(ILGenerator)

Inserta una operación de comparación entre dos valores en la parte superior de la pila en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator CompareLessThan(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Dispose(ILGenerator, LocalBuilder)

Desecha un objeto IDisposable contenido en el LocalBuilder especificado.

Declaration
public static ILGenerator Dispose(this ILGenerator ilGen, LocalBuilder disposable)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la llamada.

LocalBuilder disposable

Variable local que contiene el objeto IDisposable a desechar.

Returns
Type Description
ILGenerator
| Edit this page View Source

Divide(ILGenerator)

Inserta una operación de división en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Divide(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de división.

| Edit this page View Source

Duplicate(ILGenerator)

Inserta una operación de duplicado del valor en la parte superior de la pila en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Duplicate(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

For(ILGenerator, int, int, ForBlock)

Inserta un bloque for estructurado simple con un acumulador int en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator For(this ILGenerator ilGen, int startValue, int endValue, ILGeneratorExtensions.ForBlock forBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

int startValue

Valor inicial del acumulador, inclusive.

int endValue

Valor final del acumulador, inclusive.

ILGeneratorExtensions.ForBlock forBlock

Acción que permite definir las acciones a ejecutar dentro del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for y un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque for.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

For(ILGenerator, LocalBuilder, object?, Action<ILGenerator>, Action<ILGenerator>, ForBlock)

Inserta un bloque for estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator For(this ILGenerator ilGen, LocalBuilder accumulator, object? initialValue, Action<ILGenerator> condition, Action<ILGenerator> incrementor, ILGeneratorExtensions.ForBlock forBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

LocalBuilder accumulator

Variable local a utilizar como acumulador del bloque for.

object initialValue

Valor al cual inicializar el acumulador.

Action<ILGenerator> condition

Acción que permite definir la evaluación inicial del bloque for.

Action<ILGenerator> incrementor

Acción que permite definir la acción de incremento a ejecutar al final del bloque for.

ILGeneratorExtensions.ForBlock forBlock

Acción que permite definir las acciones a ejecutar dentro del bloque for. La acción incluye un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque for.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

For(ILGenerator, Range<int>, ForBlock)

Inserta un bloque for estructurado simple con un acumulador int en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator For(this ILGenerator ilGen, Range<int> range, ILGeneratorExtensions.ForBlock forBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

Range<int> range

Rango de valores a utilizar en el acumulador.

ILGeneratorExtensions.ForBlock forBlock

Acción que permite definir las acciones a ejecutar dentro del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for y un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque for.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

ForEach<T>(ILGenerator, ForEachBlock)

Inserta un bloque foreach estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator ForEach<T>(this ILGenerator ilGen, ILGeneratorExtensions.ForEachBlock foreachBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

ILGeneratorExtensions.ForEachBlock foreachBlock

Delegado que permite definir las acciones a ejecutar dentro del bloque foreach. La acción incluye una referencia al LocalBuilder del elemento actual del bloque foreach.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T
Remarks

Esta instrucción espera que el valor en la parte superior de la pila implemente la interfaz IEnumerable<T>.

| Edit this page View Source

For<T>(ILGenerator, T, Action<LocalBuilder>, Action<LocalBuilder>, ForBlock)

Inserta un bloque for estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator For<T>(this ILGenerator ilGen, T initialValue, Action<LocalBuilder> condition, Action<LocalBuilder> incrementor, ILGeneratorExtensions.ForBlock forBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

T initialValue

Valor inicial del acumulador del bloque for.

Action<LocalBuilder> condition

Acción que permite definir la evaluación inicial del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for.

Action<LocalBuilder> incrementor

Acción que permite definir la acción de incremento a ejecutar al final del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for.

ILGeneratorExtensions.ForBlock forBlock

Acción que permite definir las acciones a ejecutar dentro del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for y un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque for.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T
| Edit this page View Source

For<T>(ILGenerator, T, Action<LocalBuilder>, ForBlock)

Inserta un bloque for estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator For<T>(this ILGenerator ilGen, T initialValue, Action<LocalBuilder> condition, ILGeneratorExtensions.ForBlock forBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

T initialValue

Valor inicial del acumulador del bloque for.

Action<LocalBuilder> condition

Acción que permite definir la evaluación inicial del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for.

ILGeneratorExtensions.ForBlock forBlock

Acción que permite definir las acciones a ejecutar dentro del bloque for. La acción incluye una referencia al FieldBuilder del acumulador del bloque for y un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque for.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T
| Edit this page View Source

GetArrayLength(ILGenerator)

Inserta una operación que obtiene la cantidad de elementos contenidos dentro de un arreglo en la secuencia del lenguaje intermedio de Microsoft® (MSIL), equivalente a Length.

Declaration
public static ILGenerator GetArrayLength(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La pila debe contener una referencia a un arreglo en la parte superior al efectuar esta llamada. Se colocará un valor int en la parte superior de la pila

| Edit this page View Source

GetField(ILGenerator, FieldInfo)

Inserta la carga del valor de un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator GetField(this ILGenerator ilGen, FieldInfo field)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga del valor.

FieldInfo field

Campo desde el cual cargar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que el campo sea estático, por lo que no debe insertar la llamada a cargar la instancia (LoadArg0(ILGenerator)).

Uso neto de pila: -1

| Edit this page View Source

If(ILGenerator, Action<ILGenerator>)

Inserta un bloque if estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator If(this ILGenerator ilGen, Action<ILGenerator> trueBranch)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque if.

Action<ILGenerator> trueBranch

Acción que permite definir las instrucciones a insertar cuando el valor superior de la pila sea evaluado como true.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

If(ILGenerator, Action<ILGenerator>, Action<ILGenerator>)

Inserta un bloque if estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator If(this ILGenerator ilGen, Action<ILGenerator> trueBranch, Action<ILGenerator> falseBranch)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque if.

Action<ILGenerator> trueBranch

Acción que permite definir las instrucciones a insertar cuando el valor superior de la pila sea evaluado como true.

Action<ILGenerator> falseBranch

Acción que permite definir las instrucciones a insertar cuando el valor superior de la pila sea evaluado como false.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Increment(ILGenerator)

Inserta una serie de instrucciones que aumentarán el valor del valor actualmente en la pila en 1 en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Increment(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la serie de operaciones.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Increment(ILGenerator, LocalBuilder)

Inserta una serie de instrucciones que aumentarán el valor de una variable local en 1 en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Increment(this ILGenerator ilGen, LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la serie de operaciones.

LocalBuilder local

Referencia a la variable local sobre la cual ejecutar la operación de incremento.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

InitLocal(ILGenerator, LocalBuilder, object?)

Inserta la inicialización de una variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator InitLocal(this ILGenerator ilGen, LocalBuilder local, object? value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la inicialización de una variable local.

LocalBuilder local

Variable local en la cual almacenar el valor.

object value

Valor constante a almacenar en la variable local.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

InitNewLocal<T>(ILGenerator, T, out LocalBuilder)

Inserta la inicialización de una nueva variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator InitNewLocal<T>(this ILGenerator ilGen, T value, out LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la inicialización de una nueva variable local.

T value

Valor constante a almacenar en la variable local.

LocalBuilder local

Variable local en la cual almacenar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T
| Edit this page View Source

InsertNewLabel(ILGenerator, out Label)

Define e inserta una nueva etiqueta en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator InsertNewLabel(this ILGenerator ilGen, out Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la nueva etiqueta.

Label label

Etiqueta que ha sido definida e insertada.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Leave(ILGenerator, Label)

Inserta un salto de transferencia de control incondicional que sale de una región protegida de código (generalmente un bloque try o catch) en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Leave(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el salto.

Label label
Returns
Type Description
ILGenerator
| Edit this page View Source

LoadArg(ILGenerator, short)

Inserta la carga de un argumento en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadArg(this ILGenerator ilGen, short argIndex)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

short argIndex

Índice del argumento a cargar en la pila. El valor de 0 cargará una referencia a la instancia del tipo actual (el valor this) cuando se llama desde un método de instancia, causando que los parámetros del método empiecen desde el índice 1.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Uso de pila neto: 1

| Edit this page View Source

LoadArg0(ILGenerator)

Inserta la carga del argumento con índice 0 de un método en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadArg0(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Para métodos de instancia, esta llamada cargará una referencia a la instancia actual, para métodos estáticos se cargará el primer parámetro.

Uso de pila neto: 1

| Edit this page View Source

LoadArg1(ILGenerator)

Inserta la carga del argumento con índice 1 de un método en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadArg1(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Para métodos de instancia, esta llamada cargará al primer argumento del método, para métodos estáticos se cargará el segundo parámetro.

Uso de pila neto: 1

| Edit this page View Source

LoadArg2(ILGenerator)

Inserta la carga del argumento con índice 2 de un método en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadArg2(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Para métodos de instancia, esta llamada cargará al segundo argumento del método, para métodos estáticos se cargará el tercer parámetro.

Uso de pila neto: 1

| Edit this page View Source

LoadArg3(ILGenerator)

Inserta la carga del tercer argumento de un método en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadArg3(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Para métodos de instancia, esta llamada cargará al tercer argumento del método, para métodos estáticos se cargará el cuarto parámetro.

Uso de pila neto: 1

| Edit this page View Source

LoadArgAddress(ILGenerator, short)

Inserta la carga de la referencia a un argumento en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadArgAddress(this ILGenerator ilGen, short argIndex)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

short argIndex

Índice del argumento para el cual cargar una referencia. El valor de 0 cargará una referencia a la instancia del tipo actual (el valor this).

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadConstant(ILGenerator, object?)

Inserta una constante en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadConstant(this ILGenerator ilGen, object? value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga de la constante.

object value

Valor constante a insertar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Exceptions
Type Condition
NotImplementedException

Se produce al intentar cargar un valor constante desconocido.

InvalidOperationException

Se produce al intentar cargar un valor que no es constante, como una instancia de objeto.

ArgumentNullException

Se produce si value es null. Si necesita cargar un valor constante null, utilice el método LoadNull(ILGenerator).

| Edit this page View Source

LoadConstant(ILGenerator, Type, object?)

Inserta una constante en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadConstant(this ILGenerator ilGen, Type t, object? value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga de la constante.

Type t

Tipo de valor constante a insertar.

object value

Valor constante a insertar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Exceptions
Type Condition
NotImplementedException

Se produce al intentar cargar un valor constante desconocido.

InvalidOperationException

Se produce al intentar cargar un valor que no es constante, como una instancia de objeto.

| Edit this page View Source

LoadConstant<T>(ILGenerator, T)

Inserta una constante en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadConstant<T>(this ILGenerator ilGen, T value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga de la constante.

T value

Valor constante a insertar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de valor constante a insertar.

Exceptions
Type Condition
NotImplementedException

Se produce al intentar cargar un valor constante desconocido.

InvalidOperationException

Se produce al intentar cargar un valor que no es constante, como una instancia de objeto.

| Edit this page View Source

LoadField(ILGenerator, FieldInfo)

Inserta la carga del valor de un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadField(this ILGenerator ilGen, FieldInfo field)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga del valor.

FieldInfo field

Campo desde el cual cargar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que el campo sea estático, por lo que no debe insertar la llamada a cargar la instancia (LoadArg0(ILGenerator)).

Uso neto de pila: -1

| Edit this page View Source

LoadFieldAddress(ILGenerator, FieldInfo)

Inserta la carga de la referencia a un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadFieldAddress(this ILGenerator ilGen, FieldInfo field)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga de la referencia.

FieldInfo field

Campo para el cual cargar la referencia.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadLocal(ILGenerator, LocalBuilder)

Inserta la carga del valor de una variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadLocal(this ILGenerator ilGen, LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga del valor.

LocalBuilder local

Variable local desde la cual cargar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadLocalAddress(ILGenerator, LocalBuilder)

Inserta la carga de la referencia a una variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadLocalAddress(this ILGenerator ilGen, LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga de la referencia.

LocalBuilder local

Variable local para la cual cargar la referencia.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadNull(ILGenerator)

Inserta una operación de carga de la constante null en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadNull(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadParameter(ILGenerator, ParameterInfo)

Inserta la carga de un parámetro en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadParameter(this ILGenerator ilGen, ParameterInfo parameter)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

ParameterInfo parameter

Parámetro a cargar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadProperty(ILGenerator, PropertyInfo)

Inserta la carga del valor de una propiedad en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadProperty(this ILGenerator ilGen, PropertyInfo property)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga del valor.

PropertyInfo property

Propiedad desde la cual cargar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadProperty(ILGenerator, PropertyBuildInfo)

Inserta la carga del valor de una propiedad en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadProperty(this ILGenerator ilGen, PropertyBuildInfo property)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga del valor.

PropertyBuildInfo property

Propiedad desde la cual cargar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

LoadProperty<T>(ILGenerator, Expression<Func<T, object?>>)

Inserta la carga del valor de una propiedad en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator LoadProperty<T>(this ILGenerator ilGen, Expression<Func<T, object?>> propertySelector)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la carga del valor.

Expression<Func<T, object>> propertySelector

Expresión que indica qué propiedad del tipo debe devolverse.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto desde el cual seleccionar la propiedad a cargar.

| Edit this page View Source

Multiply(ILGenerator)

Inserta una operación de multiplicación en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Multiply(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de multiplicación.

| Edit this page View Source

NewArray(ILGenerator, Type)

Inserta una operación de inicialización de un arreglo unidimensional del tipo especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewArray(this ILGenerator ilGen, Type arrayType)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Type arrayType

Tipo del nuevo arreglo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga la cantidad de elementos que el arreglo debe contener expresado como un valor int.

Uso de pila neto: 0

| Edit this page View Source

NewArray(ILGenerator, Type, out LocalBuilder)

Inserta una operación de inicialización de un arreglo unidimensional del tipo especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewArray(this ILGenerator ilGen, Type arrayType, out LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Type arrayType

Tipo del nuevo arreglo.

LocalBuilder local

Parámetro que contiene la variable local generada para almacenar el nuevo arreglo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

NewArray<T>(ILGenerator)

Inserta una operación de inicialización de un arreglo unidimensional del tipo especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewArray<T>(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo del nuevo arreglo.

Remarks

La operación requiere que la pila contenga la cantidad de elementos que el arreglo debe contener expresado como un valor int.

Uso de pila neto: 0

| Edit this page View Source

NewArray<T>(ILGenerator, out LocalBuilder)

Inserta una operación de inicialización de un arreglo unidimensional del tipo especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewArray<T>(this ILGenerator ilGen, out LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

LocalBuilder local

Parámetro que contiene la variable local generada para almacenar el nuevo arreglo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo del nuevo arreglo.

Remarks

La operación requiere que la pila contenga la cantidad de elementos que el arreglo debe contener expresado como un valor int.

Uso de pila neto: -1

| Edit this page View Source

NewObj(ILGenerator, Type)

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObj(this ILGenerator ilGen, Type newObjectType)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Type newObjectType

Tipo de objeto a instanciar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

NewObj<T>(ILGenerator)

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObj<T>(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto a instanciar.

| Edit this page View Source

NewObject(ILGenerator, Type)

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject(this ILGenerator ilGen, Type type)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Type type

Tipo de objeto a instanciar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject(ILGenerator, Type, IEnumerable)

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject(this ILGenerator ilGen, Type type, IEnumerable args)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Type type

Tipo de objeto a instanciar.

IEnumerable args

Argumentos a pasar al constructor del objeto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject(ILGenerator, Type, object?[])

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject(this ILGenerator ilGen, Type type, object?[] args)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Type type

Tipo de objeto a instanciar.

object[] args

Argumentos a pasar al constructor del objeto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject(ILGenerator, Type, Type[])

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject(this ILGenerator ilGen, Type type, Type[] args)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Type type

Tipo de objeto a instanciar.

Type[] args

Tipo de argumentos aceptados por el constructor del objeto a utilizar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject<T>(ILGenerator)

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject<T>(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto a instanciar.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject<T>(ILGenerator, IEnumerable)

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject<T>(this ILGenerator ilGen, IEnumerable args)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

IEnumerable args

Argumentos a pasar al constructor del objeto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto a instanciar.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject<T>(ILGenerator, object?[])

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject<T>(this ILGenerator ilGen, object?[] args)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

object[] args

Argumentos a pasar al constructor del objeto.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto a instanciar.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

NewObject<T>(ILGenerator, Type[])

Inserta la instanciación de un objeto en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator NewObject<T>(this ILGenerator ilGen, Type[] args)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la instanciación del objeto.

Type[] args

Tipo de argumentos aceptados por el constructor del objeto a utilizar.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto a instanciar.

Exceptions
Type Condition
ClassNotInstantiableException

Se produce si la clase no es instanciable, o si no existe un constructor que acepte los argumentos especificados. También puede producirse si uno de los parámetros es un objeto, y no contiene un constructor predeterminado sin argumentos, en cuyo caso, la excepción indicará el tipo que no puede instanciarse.

| Edit this page View Source

Nop(ILGenerator)

Inserta una instrucción NOP en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Nop(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Pop(ILGenerator)

Inserta una operación de remoción del valor en la parte superior de la pila en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Pop(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

PutLabel(ILGenerator, Label)

Inserta la etiqueta en la secuencia del lenguaje intermedio (MSIL) de Microsoft® en la posición actual.

Declaration
public static ILGenerator PutLabel(this ILGenerator ilGen, Label label)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la etiqueta.

Label label

Etiqueta que será insertada.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

RegisterConstantLoader(IConstantLoader)

Registra un IConstantLoader para el método LoadConstant<T>(ILGenerator, T).

Declaration
public static void RegisterConstantLoader(IConstantLoader loader)
Parameters
Type Name Description
IConstantLoader loader

IConstantLoader a registrar.

| Edit this page View Source

Remainder(ILGenerator)

Inserta una operación de residuo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Remainder(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de residuo.

| Edit this page View Source

Return(ILGenerator)

Inserta el retorno del método actual en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Return(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Return(ILGenerator, Label)

Inserta el retorno del método actual en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Return(this ILGenerator ilGen, Label exitLabel)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Label exitLabel

Etiqueta opcional creada anteriormente que recibe el control desde un salto para salir del método en ejecución.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

SetField(ILGenerator, FieldInfo, Action<ILGenerator>)

Inserta el almacenamiento de un valor a un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL), determinando automáticamente si es necesario insertar una referencia a this.

Declaration
public static ILGenerator SetField(this ILGenerator ilGen, FieldInfo field, Action<ILGenerator> value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

FieldInfo field

Campo en el cual almacenar el valor.

Action<ILGenerator> value

Llamada que cargará el valor a almacenar en el campo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que el campo sea estático, por lo que no debe insertar la llamada a cargar la instancia (LoadArg0(ILGenerator)).

Uso neto de pila: -1

See Also
StoreField(ILGenerator, FieldInfo, Action<ILGenerator>)
| Edit this page View Source

SetField(ILGenerator, FieldInfo, Func<ILGenerator, ILGenerator>)

Inserta el almacenamiento de un valor a un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL), determinando automáticamente si es necesario insertar una referencia a this.

Declaration
public static ILGenerator SetField(this ILGenerator ilGen, FieldInfo field, Func<ILGenerator, ILGenerator> value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

FieldInfo field

Campo en el cual almacenar el valor.

Func<ILGenerator, ILGenerator> value

Llamada que cargará el valor a almacenar en el campo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que el campo sea estático, por lo que no debe insertar la llamada a cargar la instancia (LoadArg0(ILGenerator)).

Uso neto de pila: -1

See Also
StoreField(ILGenerator, FieldInfo, Func<ILGenerator, ILGenerator>)
| Edit this page View Source

StoreDoubleElement(ILGenerator)

Inserta una operación que almacena un valor double dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreDoubleElement(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga el valor double a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicho valor justo debajo.

Uso de pila neto: -2

| Edit this page View Source

StoreField(ILGenerator, FieldInfo)

Inserta el almacenamiento de un valor a un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreField(this ILGenerator ilGen, FieldInfo field)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

FieldInfo field

Campo en el cual almacenar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método requiere que la pila contenga el valor a almacenar en la parte superior, seguido inmediatamente de una referencia a la instancia en caso que el campo sea de instancia. Si el campo es estático, no se requiere una referencia a this (Me en Visual Basic).

Uso neto de pila: -1

See Also
LoadArg0(ILGenerator)
StoreField(ILGenerator, FieldInfo, Action<ILGenerator>)
| Edit this page View Source

StoreField(ILGenerator, FieldInfo, Action<ILGenerator>)

Inserta el almacenamiento de un valor a un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreField(this ILGenerator ilGen, FieldInfo field, Action<ILGenerator> value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

FieldInfo field

Campo en el cual almacenar el valor.

Action<ILGenerator> value

Llamada que cargará el valor a almacenar en el campo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método no determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que el campo sea estático, por lo que debe insertar la llamada a cargar la instancia (LoadArg0(ILGenerator)).

Uso neto de pila: -1

See Also
SetField(ILGenerator, FieldInfo, Action<ILGenerator>)
| Edit this page View Source

StoreField(ILGenerator, FieldInfo, Func<ILGenerator, ILGenerator>)

Inserta el almacenamiento de un valor a un campo en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreField(this ILGenerator ilGen, FieldInfo field, Func<ILGenerator, ILGenerator> value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

FieldInfo field

Campo en el cual almacenar el valor.

Func<ILGenerator, ILGenerator> value

Llamada que cargará el valor a almacenar en el campo.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método no determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que el campo sea estático, por lo que debe insertar la llamada a cargar la instancia (LoadArg0(ILGenerator)).

Uso neto de pila: -1

See Also
SetField(ILGenerator, FieldInfo, Func<ILGenerator, ILGenerator>)
| Edit this page View Source

StoreFloatElement(ILGenerator)

Inserta una operación que almacena un valor float dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreFloatElement(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga el valor float a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicho valor justo debajo.

Uso de pila neto: -2

| Edit this page View Source

StoreInt16Element(ILGenerator)

Inserta una operación que almacena un valor short o ushort dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreInt16Element(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga el valor short a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicho valor justo debajo.

Uso de pila neto: -2

| Edit this page View Source

StoreInt32Element(ILGenerator)

Inserta una operación que almacena un valor int o uint dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreInt32Element(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga el valor int a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicho valor justo debajo.

Uso de pila neto: -2

| Edit this page View Source

StoreInt64Element(ILGenerator)

Inserta una operación que almacena un valor long o ulong dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreInt64Element(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga el valor long a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicho valor justo debajo.

Uso de pila neto: -2

| Edit this page View Source

StoreInt8Element(ILGenerator)

Inserta una operación que almacena un valor byte o sbyte dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreInt8Element(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga el valor byte a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicho valor justo debajo.

Uso de pila neto: -2

| Edit this page View Source

StoreLocal(ILGenerator, LocalBuilder)

Inserta el almacenamiento de un valor a una variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreLocal(this ILGenerator ilGen, LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

LocalBuilder local

Variable local en la cual almacenar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

StoreNewLocal(ILGenerator, Type, out LocalBuilder)

Inserta el almacenamiento de un valor a una nueva variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreNewLocal(this ILGenerator ilGen, Type localType, out LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

Type localType

Tipo de la variable local a declarar.

LocalBuilder local

Variable local en la cual almacenar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

StoreNewLocal<T>(ILGenerator, out LocalBuilder)

Inserta el almacenamiento de un valor a una nueva variable local en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreNewLocal<T>(this ILGenerator ilGen, out LocalBuilder local)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

LocalBuilder local

Variable local en la cual almacenar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T
| Edit this page View Source

StoreProperty(ILGenerator, PropertyInfo)

Inserta el almacenamiento de un valor a una propiedad en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreProperty(this ILGenerator ilGen, PropertyInfo prop)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

PropertyInfo prop

Propiedad en la cual almacenar el valor.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método requiere que la pila contenga el valor a almacenar en la parte superior, seguido inmediatamente de una referencia a la instancia en caso que la propiedad sea de instancia. Si la propiedad es estática, no se requiere una referencia a this (Me en Visual Basic).

Uso neto de pila: -1

See Also
LoadArg0(ILGenerator)
StoreProperty(ILGenerator, PropertyInfo, Action<ILGenerator>)
| Edit this page View Source

StoreProperty(ILGenerator, PropertyInfo, Action<ILGenerator>)

Inserta el almacenamiento de un valor a una propiedad en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreProperty(this ILGenerator ilGen, PropertyInfo prop, Action<ILGenerator> value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

PropertyInfo prop

Propiedad en la cual almacenar el valor.

Action<ILGenerator> value

Llamada que cargará el valor a almacenar en la propiedad.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que la propiedad sea estática, por lo que no debe insertar la llamada a cargar la instancia por medio de (LoadArg0(ILGenerator)).

Uso neto de pila: -1

| Edit this page View Source

StoreProperty(ILGenerator, PropertyInfo, Func<ILGenerator, ILGenerator>)

Inserta el almacenamiento de un valor a una propiedad en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreProperty(this ILGenerator ilGen, PropertyInfo prop, Func<ILGenerator, ILGenerator> value)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el almacenamiento de un valor.

PropertyInfo prop

Propiedad en la cual almacenar el valor.

Func<ILGenerator, ILGenerator> value

Llamada que cargará el valor a almacenar en la propiedad.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método determinará automáticamente si es necesario agregar una referencia a this (Me en Visual Basic) en caso que la propiedad sea estática, por lo que no debe insertar la llamada a cargar la instancia por medio de (LoadArg0(ILGenerator)).

Uso neto de pila: -1

| Edit this page View Source

StoreRefElement(ILGenerator)

Inserta una operación que almacena la referencia a un objeto dentro de un arreglo en el índice especificado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator StoreRefElement(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

La operación requiere que la pila contenga la referencia al objeto a insertar en la parte superior, así como también el índice de tipo int en el cual se insertará dicha referencia justo debajo.

Uso de pila neto: -2

| Edit this page View Source

Subtract(ILGenerator)

Inserta una operación de resta en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Subtract(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar la operación.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Remarks

Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de resta.

| Edit this page View Source

Throw(ILGenerator)

Inserta el lanzamiento de una excepción ya instanciada en la pila en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Throw(this ILGenerator ilGen)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar lanzamiento de la excepción.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Throw<T>(ILGenerator)

Inserta la istanciación y lanzamiento de una excepción sin argumentos en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Throw<T>(this ILGenerator ilGen) where T : Exception, new()
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar lanzamiento de la excepción.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de la excepción a lanzar. Debe contener un constructor publico sin parámetros.

| Edit this page View Source

TryCatch(ILGenerator, TryBlock, IEnumerable<KeyValuePair<Type, TryBlock>>)

Inserta un bloque try/catch estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator TryCatch(this ILGenerator ilGen, ILGeneratorExtensions.TryBlock tryBlock, IEnumerable<KeyValuePair<Type, ILGeneratorExtensions.TryBlock>> catchBlocks)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque for.

ILGeneratorExtensions.TryBlock tryBlock

Acción que permite definir las instrucciones a insertar en el bloque try. La acción incluye un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque try por medio de una instrucción Leave(ILGenerator, Label).

IEnumerable<KeyValuePair<Type, ILGeneratorExtensions.TryBlock>> catchBlocks

Colección de bloques catch a insertar. Cada acción incluye un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque catch por medio de una instrucción Leave(ILGenerator, Label).

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

TryCatchFinally(ILGenerator, TryBlock, IEnumerable<KeyValuePair<Type, TryBlock>>, Action<ILGenerator>)

Inserta un bloque try/catch/finally estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator TryCatchFinally(this ILGenerator ilGen, ILGeneratorExtensions.TryBlock tryBlock, IEnumerable<KeyValuePair<Type, ILGeneratorExtensions.TryBlock>> catchBlocks, Action<ILGenerator> finallyBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque try.

ILGeneratorExtensions.TryBlock tryBlock

Acción que permite definir las instrucciones a insertar en el bloque try. La acción incluye un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque try por medio de una instrucción Leave(ILGenerator, Label).

IEnumerable<KeyValuePair<Type, ILGeneratorExtensions.TryBlock>> catchBlocks

Colección de bloques catch a insertar. Cada acción incluye un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque catch por medio de una instrucción Leave(ILGenerator, Label).

Action<ILGenerator> finallyBlock

Acción que permite definir las instrucciones a insertar en el bloque finally.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

TryFinally(ILGenerator, TryBlock, Action<ILGenerator>)

Inserta un bloque try/finally estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator TryFinally(this ILGenerator ilGen, ILGeneratorExtensions.TryBlock tryBlock, Action<ILGenerator> finallyBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque try.

ILGeneratorExtensions.TryBlock tryBlock

Acción que permite definir las instrucciones a insertar en el bloque try. La acción incluye un parámetro que puede usarse como la etiqueta de salida para finalizar el bloque try por medio de una instrucción Leave(ILGenerator, Label).

Action<ILGenerator> finallyBlock

Acción que permite definir las instrucciones a insertar en el bloque finally.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Using(ILGenerator, LocalBuilder, UsingBlock)

Inserta un bloque using estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Using(this ILGenerator ilGen, LocalBuilder disposable, ILGeneratorExtensions.UsingBlock usingBlock)
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque using.

LocalBuilder disposable

Referencia a un LocalBuilder que contiene la instancia del objeto desechable a utilizar dentro del bloque using.

ILGeneratorExtensions.UsingBlock usingBlock

Delegado que define las acciones a ejecutar dentro del bloque using.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

| Edit this page View Source

Using<T>(ILGenerator, UsingBlock)

Inserta un bloque using estructurado en la secuencia del lenguaje intermedio de Microsoft® (MSIL).

Declaration
public static ILGenerator Using<T>(this ILGenerator ilGen, ILGeneratorExtensions.UsingBlock usingBlock) where T : IDisposable, new()
Parameters
Type Name Description
ILGenerator ilGen

Secuencia de instrucciones en la cual insertar el bloque using.

ILGeneratorExtensions.UsingBlock usingBlock

Delegado que define las acciones a ejecutar dentro del bloque using.

Returns
Type Description
ILGenerator

La misma instancia que ilGen, permitiendo el uso de sintaxis Fluent.

Type Parameters
Name Description
T

Tipo de objeto desechable a instanciar para utilizar dentro del bloque using.

  • Edit this page
  • View Source
In this article
Back to top Generated by DocFX