Class ILGeneratorExtensions
Contiene extensiones útiles para la generación de código por medio de la clase ILGenerator.
Inherited Members
Namespace: TheXDS.MCART.Types.Extensions
Assembly: MCART.TypeFactory.dll
Syntax
public static class ILGeneratorExtensions
Methods
| Edit this page View SourceAdd(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 |
Remarks
Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de suma.
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Type Parameters
Name | Description |
---|---|
TClass | Clase desde la cual se llamará al constructor de instancia del tipo base. |
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 |
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.
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 |
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 |
Type Parameters
Name | Description |
---|---|
TMethod | Delegado que describe al método a llamar. |
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 |
Type Parameters
Name | Description |
---|---|
TMethod | Delegado que describe al método a llamar. |
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 |
Type Parameters
Name | Description |
---|---|
TClass | Clase en la que reside el método de instancia. |
TMethod | Delegado que describe al método a llamar. |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Remarks
Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de división.
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 |
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 |
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 |
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 |
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 |
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>.
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 |
Type Parameters
Name | Description |
---|---|
T |
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 |
Type Parameters
Name | Description |
---|---|
T |
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 |
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
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 |
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
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 |
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 |
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 |
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 |
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 |
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 |
Type Parameters
Name | Description |
---|---|
T |
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 |
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 |
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 |
Returns
Type | Description |
---|---|
ILGenerator | La misma instancia que |
Remarks
Uso de pila neto: 1
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 |
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
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 |
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
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 |
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
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 |
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
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 |
Returns
Type | Description |
---|---|
ILGenerator | La misma instancia que |
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 |
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 |
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 |
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. |
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 |
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. |
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 |
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
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Type Parameters
Name | Description |
---|---|
T | Tipo de objeto desde el cual seleccionar la propiedad a cargar. |
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 |
Remarks
Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de multiplicación.
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 |
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
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 |
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 |
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
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 |
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
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 |
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 |
Type Parameters
Name | Description |
---|---|
T | Tipo de objeto a instanciar. |
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 |
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. |
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 |
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. |
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 |
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. |
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 |
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. |
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 |
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. |
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 |
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. |
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 |
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. |
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 |
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. |
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 |
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 |
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 |
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. |
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 |
Remarks
Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de residuo.
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 |
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 |
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 |
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
| Edit this page View SourceSetField(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 |
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
| Edit this page View SourceStoreDoubleElement(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 |
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
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 |
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
| Edit this page View SourceStoreField(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 |
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
| Edit this page View SourceStoreField(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 |
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
| Edit this page View SourceStoreFloatElement(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 |
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
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 |
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
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 |
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
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 |
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
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 |
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
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 |
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 |
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 |
Type Parameters
Name | Description |
---|---|
T |
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 |
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
| Edit this page View SourceStoreProperty(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 |
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
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 |
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
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 |
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
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 |
Remarks
Este método espera que existan dos valores en la pila sobre los cuales pueda aplicarse la operación de resta.
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 |
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 |
Type Parameters
Name | Description |
---|---|
T | Tipo de la excepción a lanzar. Debe contener un constructor publico sin parámetros. |
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 |
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 |
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 |
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 |
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 |
Type Parameters
Name | Description |
---|---|
T | Tipo de objeto desechable a instanciar para utilizar dentro del bloque using. |