Show / Hide Table of Contents

Class TypeBuilderExtensions

Contiene extensiones útiles para la generación de miembros por medio de la clase TypeBuilder.

Inheritance
object
TypeBuilderExtensions
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 TypeBuilderExtensions

Methods

| Edit this page View Source

AddAutoProperty(TypeBuilder, string, Type)

Agrega una propiedad automática pública al tipo.

Declaration
public static PropertyBuildInfo AddAutoProperty(this TypeBuilder tb, string name, Type type)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad automática.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddAutoProperty(TypeBuilder, string, Type, MemberAccess)

Agrega una propiedad automática al tipo.

Declaration
public static PropertyBuildInfo AddAutoProperty(this TypeBuilder tb, string name, Type type, MemberAccess access)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad automática.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddAutoProperty(TypeBuilder, string, Type, MemberAccess, bool)

Agrega una propiedad automática al tipo.

Declaration
public static PropertyBuildInfo AddAutoProperty(this TypeBuilder tb, string name, Type type, MemberAccess access, bool @virtual)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad automática.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

bool virtual

Si se establece en true, la propiedad será definida como virtual, por lo que podrá ser reemplazada en una clase derivada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddAutoProperty<T>(TypeBuilder, string)

Agrega una propiedad automática pública al tipo.

Declaration
public static PropertyBuildInfo AddAutoProperty<T>(this TypeBuilder tb, string name)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad automática.

string name

Nombre de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

| Edit this page View Source

AddComputedProperty(TypeBuilder, string, Type, Action<ILGenerator>)

Agrega una propiedad computada al tipo.

Declaration
public static PropertyBuildInfo AddComputedProperty(this TypeBuilder tb, string name, Type type, Action<ILGenerator> getterDefinition)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

Action<ILGenerator> getterDefinition

Acción que implementará las instrucciones a ejecutar dentro del método asociado al accesor get de la propiedad computada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddComputedProperty<T>(TypeBuilder, string, Action<ILGenerator>)

Agrega una propiedad computada al tipo.

Declaration
public static PropertyBuildInfo AddComputedProperty<T>(this TypeBuilder tb, string name, Action<ILGenerator> getterDefinition)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Action<ILGenerator> getterDefinition

Acción que implementará las instrucciones a ejecutar dentro del método asociado al accesor get de la propiedad computada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

| Edit this page View Source

AddConstantProperty(TypeBuilder, string, Type, object?)

Agrega una propiedad con un valor constante.

Declaration
public static PropertyBuildInfo AddConstantProperty(this TypeBuilder tb, string name, Type type, object? value)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

object value

Valor constante a asignar.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddConstantProperty<T>(TypeBuilder, string, T)

Agrega una propiedad con un valor constante.

Declaration
public static PropertyBuildInfo AddConstantProperty<T>(this TypeBuilder tb, string name, T value)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

T value

Valor constante a asignar.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

| Edit this page View Source

AddEvent(TypeBuilder, string)

Agrega un evento al tipo.

Declaration
public static EventBuildInfo AddEvent(this TypeBuilder builder, string name)
Parameters
Type Name Description
TypeBuilder builder

TypeBuilder en el cual se creará el nuevo evento y sus métodos auxiliares requeridos.

string name

Nombre del nuevo evento.

Returns
Type Description
EventBuildInfo

Un EventBuildInfo que contiene información sobre el evento que ha sido definido.

| Edit this page View Source

AddEvent<TEventArgs>(TypeBuilder, string)

Agrega un evento al tipo.

Declaration
public static EventBuildInfo AddEvent<TEventArgs>(this TypeBuilder builder, string name) where TEventArgs : EventArgs
Parameters
Type Name Description
TypeBuilder builder

TypeBuilder en el cual se creará el nuevo evento y sus métodos auxiliares requeridos.

string name

Nombre del nuevo evento.

Returns
Type Description
EventBuildInfo

Un EventBuildInfo que contiene información sobre el evento que ha sido definido.

Type Parameters
Name Description
TEventArgs

Tipo de argumentos de evento a pasar cuando se produzca el evento.

| Edit this page View Source

AddEvent<TEventHandler, TEventArgs>(TypeBuilder, string)

Agrega un evento al tipo.

Declaration
public static EventBuildInfo AddEvent<TEventHandler, TEventArgs>(this TypeBuilder builder, string name) where TEventHandler : Delegate where TEventArgs : EventArgs
Parameters
Type Name Description
TypeBuilder builder

TypeBuilder en el cual se creará el nuevo evento y sus métodos auxiliares requeridos.

string name

Nombre del nuevo evento.

Returns
Type Description
EventBuildInfo

Un EventBuildInfo que contiene información sobre el evento que ha sido definido.

Type Parameters
Name Description
TEventHandler

Delegado del manejador de eventos. Debe seguir la firma estándar de un manejador de eventos, es decir, debe ser un método con tipo de retorno void, y debe contener un argumento de tipo object) y un argumento de tipo TEventArgs.

TEventArgs

Tipo de argumentos de evento a pasar cuando se produzca el evento.

| Edit this page View Source

AddEvent<TEventHandler, TSender, TEventArgs>(TypeBuilder, string)

Agrega un evento al tipo.

Declaration
public static EventBuildInfo AddEvent<TEventHandler, TSender, TEventArgs>(this TypeBuilder builder, string name) where TEventHandler : Delegate where TEventArgs : EventArgs
Parameters
Type Name Description
TypeBuilder builder

TypeBuilder en el cual se creará el nuevo evento y sus métodos auxiliares requeridos.

string name

Nombre del nuevo evento.

Returns
Type Description
EventBuildInfo

Un EventBuildInfo que contiene información sobre el evento que ha sido definido.

Type Parameters
Name Description
TEventHandler

Delegado del manejador de eventos. Debe seguir la firma estándar de un manejador de eventos, es decir, debe ser un método con tipo de retorno void, y debe contener un argumento de tipo TSender (generalmente, se prefiere el tipo object) y un argumento de tipo TEventArgs.

TSender

Tipo del objeto que genera el evento. Puede utilizarse object.

TEventArgs

Tipo de argumentos de evento a pasar cuando se produzca el evento.

| Edit this page View Source

AddOverride(TypeBuilder, MethodInfo)

Agrega una sustitución para el método especificado.

Declaration
public static MethodBuildInfo AddOverride(this TypeBuilder tb, MethodInfo method)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad automática.

MethodInfo method

Método a sustituir. Debe existir en el tipo base.

Returns
Type Description
MethodBuildInfo
| Edit this page View Source

AddProperty(TypeBuilder, string, Type, bool, MemberAccess, bool)

Agrega una propiedad al tipo sin implementaciones de get ni set establecidas.

Declaration
public static PropertyBuildInfo AddProperty(this TypeBuilder tb, string name, Type type, bool writable, MemberAccess access, bool @virtual)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

bool writable

true para crear una propiedad que contiene accesor de escritura (accesor set), false para no incluir un accesor de escritura en la propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

bool virtual

Si se establece en true, la propiedad será definida como virtual, por lo que podrá ser reemplazada en una clase derivada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Remarks

La propiedad generada requerirá que se implementen los accesores antes de construir el tipo.

| Edit this page View Source

AddProperty<T>(TypeBuilder, string)

Agrega una propiedad al tipo sin implementaciones de get ni set establecidas.

Declaration
public static PropertyBuildInfo AddProperty<T>(this TypeBuilder tb, string name)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

Remarks

La propiedad generada requerirá que se implementen los accesores antes de construir el tipo.

| Edit this page View Source

AddProperty<T>(TypeBuilder, string, bool)

Agrega una propiedad al tipo sin implementaciones de get ni set establecidas.

Declaration
public static PropertyBuildInfo AddProperty<T>(this TypeBuilder tb, string name, bool writable)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

bool writable

true para crear una propiedad que contiene accesor de escritura (accesor set), false para no incluir un accesor de escritura en la propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

Remarks

La propiedad generada requerirá que se implementen los accesores antes de construir el tipo.

| Edit this page View Source

AddProperty<T>(TypeBuilder, string, bool, MemberAccess)

Agrega una propiedad al tipo sin implementaciones de get ni set establecidas.

Declaration
public static PropertyBuildInfo AddProperty<T>(this TypeBuilder tb, string name, bool writable, MemberAccess access)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

bool writable

true para crear una propiedad que contiene accesor de escritura (accesor set), false para no incluir un accesor de escritura en la propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

Remarks

La propiedad generada requerirá que se implementen los accesores antes de construir el tipo.

| Edit this page View Source

AddProperty<T>(TypeBuilder, string, bool, MemberAccess, bool)

Agrega una propiedad al tipo sin implementaciones de get ni set establecidas.

Declaration
public static PropertyBuildInfo AddProperty<T>(this TypeBuilder tb, string name, bool writable, MemberAccess access, bool @virtual)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

bool writable

true para crear una propiedad que contiene accesor de escritura (accesor set), false para no incluir un accesor de escritura en la propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

bool virtual

Si se establece en true, la propiedad será definida como virtual, por lo que podrá ser reemplazada en una clase derivada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

Type Parameters
Name Description
T

Tipo de la nueva propiedad.

Remarks

La propiedad generada requerirá que se implementen los accesores antes de construir el tipo.

| Edit this page View Source

AddPublicConstructor(TypeBuilder)

Inserta explícitamente un constructor público sin argumentos al tipo.

Declaration
public static ILGenerator AddPublicConstructor(this TypeBuilder tb)
Parameters
Type Name Description
TypeBuilder tb

TypeBuilder en el cual se definirá el nuevo constructor.

Returns
Type Description
ILGenerator

Un ILGenerator que permite definir las instrucciones del constructor.

| Edit this page View Source

AddPublicConstructor(TypeBuilder, params Type[])

Inserta explícitamente un constructor público al tipo, especificando los argumentos requeridos por el mismo.

Declaration
public static ILGenerator AddPublicConstructor(this TypeBuilder tb, params Type[] arguments)
Parameters
Type Name Description
TypeBuilder tb

TypeBuilder en el cual se definirá el nuevo constructor.

Type[] arguments

Arreglo con los tipos de argumentos aceptados por el nuevo constructor.

Returns
Type Description
ILGenerator

Un ILGenerator que permite definir las instrucciones del constructor.

| Edit this page View Source

AddWriteOnlyProperty(TypeBuilder, string, Type)

Agrega una propiedad pública de solo escritura al tipo.

Declaration
public static PropertyBuildInfo AddWriteOnlyProperty(this TypeBuilder tb, string name, Type type)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddWriteOnlyProperty(TypeBuilder, string, Type, bool)

Agrega una propiedad pública de solo escritura al tipo.

Declaration
public static PropertyBuildInfo AddWriteOnlyProperty(this TypeBuilder tb, string name, Type type, bool @virtual)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

bool virtual

Si se establece en true, la propiedad será definida como virtual, por lo que podrá ser reemplazada en una clase derivada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddWriteOnlyProperty(TypeBuilder, string, Type, MemberAccess)

Agrega una propiedad de solo escritura al tipo.

Declaration
public static PropertyBuildInfo AddWriteOnlyProperty(this TypeBuilder tb, string name, Type type, MemberAccess access)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

AddWriteOnlyProperty(TypeBuilder, string, Type, MemberAccess, bool)

Agrega una propiedad de solo escritura al tipo.

Declaration
public static PropertyBuildInfo AddWriteOnlyProperty(this TypeBuilder tb, string name, Type type, MemberAccess access, bool @virtual)
Parameters
Type Name Description
TypeBuilder tb

Constructor del tipo en el cual crear la nueva propiedad.

string name

Nombre de la nueva propiedad.

Type type

Tipo de la nueva propiedad.

MemberAccess access

Nivel de acceso de la nueva propiedad.

bool virtual

Si se establece en true, la propiedad será definida como virtual, por lo que podrá ser reemplazada en una clase derivada.

Returns
Type Description
PropertyBuildInfo

Un PropertyBuildInfo que contiene información sobre la propiedad que ha sido construida.

| Edit this page View Source

DefineMethod<TResult>(TypeBuilder, string, params Type[])

Define un método que devuelve un tipo especificado.

Declaration
public static MethodBuilder DefineMethod<TResult>(this TypeBuilder tb, string name, params Type[] parameterTypes)
Parameters
Type Name Description
TypeBuilder tb

TypeBuilder en el cual se creará el nuevo método.

string name

Nombre del nuevo método.

Type[] parameterTypes

Tipo de los parámetros aceptados por el método.

Returns
Type Description
MethodBuilder

Un MethodBuilder con el que se podrá definir al método.

Type Parameters
Name Description
TResult

Tipo de resultado devuelto por el método.

| Edit this page View Source

DefineVoidMethod(TypeBuilder, string, params Type[])

Define un método que no devuelve valor.

Declaration
public static MethodBuilder DefineVoidMethod(this TypeBuilder tb, string name, params Type[] parameterTypes)
Parameters
Type Name Description
TypeBuilder tb

TypeBuilder en el cual se creará el nuevo método.

string name

Nombre del nuevo método.

Type[] parameterTypes

Tipo de los parámetros aceptados por el método.

Returns
Type Description
MethodBuilder

Un MethodBuilder con el que se podrá definir al método.

| Edit this page View Source

ExplicitImplementMethod(TypeBuilder, MethodInfo)

Implementa explícitamente un método abstracto.

Declaration
public static MethodBuildInfo ExplicitImplementMethod(this TypeBuilder tb, MethodInfo method)
Parameters
Type Name Description
TypeBuilder tb

TypeBuilder en el cual se implementará de forma explícita el método abstracto.

MethodInfo method

Método abstracto a implementar. El TypeBuilder especificado debe implementar la interfaz en la cual está definido el método.

Returns
Type Description
MethodBuildInfo

Un MethodBuildInfo que contiene información sobre el método que ha sido implementado de forma explícita.

Exceptions
Type Condition
InvalidOperationException

Se produce si tb no implementa o hereda la interfaz en la cual se ha definido el método method, o si method no es un miembro definido en una interfaz.

| Edit this page View Source

New(TypeBuilder)

Inicializa una nueva instancia del tipo en runtime especificado.

Declaration
public static object New(this TypeBuilder tb)
Parameters
Type Name Description
TypeBuilder tb

TypeBuilder desde el cual instanciar un nuevo objeto.

Returns
Type Description
object

La nueva instancia del tipo especificado.

| Edit this page View Source

Overridable(TypeBuilder, string, params Type[])

Determina si el método es reemplazable.

Declaration
public static bool? Overridable(this TypeBuilder tb, string method, params Type[] args)
Parameters
Type Name Description
TypeBuilder tb

Constructor de tipo sobre el cual ejecutar la consulta.

string method

Nombre del método a buscar.

Type[] args

Tipo de argumentos del método a buscar.

Returns
Type Description
bool?

true si el método es reemplazable false en caso contrario, o null si el método no existe en la clase base del constructor de tipos.

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