Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase ModuleBuilder

 

Publicado: octubre de 2016

Define y representa un módulo en un ensamblado dinámico.

Espacio de nombres:   System.Reflection.Emit
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Reflection.Module
    System.Reflection.Emit.ModuleBuilder

[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
public class ModuleBuilder : Module, _ModuleBuilder

NombreDescripción
System_CAPS_pubpropertyAssembly

Obtiene el ensamblado dinámico que definió esta instancia de ModuleBuilder.(Invalida Module.Assembly).

System_CAPS_pubpropertyCustomAttributes

Obtiene una colección que contiene los atributos personalizados de este módulo.(Heredado de Module).

System_CAPS_pubpropertyFullyQualifiedName

Obtiene un String que representa el nombre completo y la ruta de acceso de este módulo.(Invalida Module.FullyQualifiedName).

System_CAPS_pubpropertyMDStreamVersion

Obtiene la versión del flujo de metadatos.(Invalida Module.MDStreamVersion).

System_CAPS_pubpropertyMetadataToken

Obtiene un token que identifica el módulo dinámico actual en los metadatos.(Invalida Module.MetadataToken).

System_CAPS_pubpropertyModuleHandle

Obtiene un identificador para el módulo.(Heredado de Module).

System_CAPS_pubpropertyModuleVersionId

Obtiene un identificador único universal (UUID) que puede utilizarse para distinguir entre dos versiones de un módulo.(Invalida Module.ModuleVersionId).

System_CAPS_pubpropertyName

Cadena que indica que se trata de un módulo en memoria.(Invalida Module.Name).

System_CAPS_pubpropertyScopeName

Obtiene una cadena que representa el nombre del módulo dinámico.(Invalida Module.ScopeName).

NombreDescripción
System_CAPS_pubmethodCreateGlobalFunctions()

Completa las definiciones de funciones globales y definiciones de datos globales para este módulo dinámico.

System_CAPS_pubmethodDefineDocument(String, Guid, Guid, Guid)

Define un documento de origen.

System_CAPS_pubmethodDefineEnum(String, TypeAttributes, Type)

Define un tipo de enumeración es un tipo de valor con un único campo no estático denominado value__ del tipo especificado.

System_CAPS_pubmethodDefineGlobalMethod(String, MethodAttributes, CallingConventions, Type, Type[])

Define un método global con el nombre especificado, atributos, convención de llamada, tipo de valor devuelto y los tipos de parámetro.

System_CAPS_pubmethodDefineGlobalMethod(String, MethodAttributes, CallingConventions, Type, Type[], Type[], Type[], Type[][], Type[][])

Define un método global con el nombre especificado, los atributos, la convención de llamada, tipo de valor devuelto, los modificadores personalizados para el tipo devuelto, los tipos de parámetro y los modificadores personalizados para los tipos de parámetro.

System_CAPS_pubmethodDefineGlobalMethod(String, MethodAttributes, Type, Type[])

Define un método global con el nombre especificado, atributos, tipo de valor devuelto y los tipos de parámetro.

System_CAPS_pubmethodDefineInitializedData(String, Byte[], FieldAttributes)

Define un campo de datos inicializado en la sección .sdata del archivo portable ejecutable (PE).

System_CAPS_pubmethodDefineManifestResource(String, Stream, ResourceAttributes)

Define un objeto binario grande (BLOB) que representa un recurso del manifiesto incrustado en el ensamblado dinámico.

System_CAPS_pubmethodDefinePInvokeMethod(String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet)

Define un PInvoke método con el nombre especificado, el nombre de la DLL en el que se define el método, los atributos del método, la convención de llamada del método, el tipo de valor devuelto del método, los tipos de los parámetros del método y la PInvoke marcas.

System_CAPS_pubmethodDefinePInvokeMethod(String, String, String, MethodAttributes, CallingConventions, Type, Type[], CallingConvention, CharSet)

Define un PInvoke método con el nombre especificado, el nombre de la DLL en el que se define el método, los atributos del método, la convención de llamada del método, el tipo de valor devuelto del método, los tipos de los parámetros del método y la PInvoke marcas.

System_CAPS_pubmethodDefineResource(String, String)

Define el recurso incrustado administrado con nombre que se almacenará en este módulo.

System_CAPS_pubmethodDefineResource(String, String, ResourceAttributes)

Define el nombre recurso incrustado administrado con los atributos dados que se pueden almacenar en este módulo.

System_CAPS_pubmethodDefineType(String)

Construye un TypeBuilder para un tipo privado con el nombre especificado en este módulo.

System_CAPS_pubmethodDefineType(String, TypeAttributes)

Construye un TypeBuilder dado el nombre de tipo y los atributos de tipo.

System_CAPS_pubmethodDefineType(String, TypeAttributes, Type)

Construye un TypeBuilder dado el nombre de tipo, sus atributos y el tipo que extiende el tipo definido.

System_CAPS_pubmethodDefineType(String, TypeAttributes, Type, Int32)

Construye un TypeBuilder dado el nombre de tipo, los atributos, el tipo que extiende el tipo definido y el tamaño total del tipo.

System_CAPS_pubmethodDefineType(String, TypeAttributes, Type, PackingSize)

Construye un TypeBuilder dado el nombre de tipo, los atributos, el tipo que extiende el tipo definido y el tamaño de empaquetado del tipo.

System_CAPS_pubmethodDefineType(String, TypeAttributes, Type, PackingSize, Int32)

Construye un TypeBuilder dado el nombre de tipo, atributos, el tipo que extiende el tipo definido, el tamaño de empaquetado del tipo definido y el tamaño total del tipo definido.

System_CAPS_pubmethodDefineType(String, TypeAttributes, Type, Type[])

Construye un TypeBuilder dado el nombre de tipo, atributos, el tipo que extiende el tipo definido y las interfaces que implementa el tipo definido.

System_CAPS_pubmethodDefineUninitializedData(String, Int32, FieldAttributes)

Define un campo de datos sin inicializar en la sección .sdata del archivo portable ejecutable (PE).

System_CAPS_pubmethodDefineUnmanagedResource(Byte[])

Define un recurso incrustado no administrado dado un opaco objeto binario grande (BLOB) de bytes.

System_CAPS_pubmethodDefineUnmanagedResource(String)

Define un recurso no administrado que recibe el nombre del archivo de recursos de Win32.

System_CAPS_pubmethodEquals(Object)

Devuelve un valor que indica si esta instancia es igual que el objeto especificado.(Invalida Module.Equals(Object)).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodFindTypes(TypeFilter, Object)

Devuelve una matriz de las clases aceptadas por el filtro y los criterios de filtro dados.(Heredado de Module).

System_CAPS_pubmethodGetArrayMethod(Type, String, CallingConventions, Type, Type[])

Devuelve el método con nombre en una clase de matriz.

System_CAPS_pubmethodGetArrayMethodToken(Type, String, CallingConventions, Type, Type[])

Devuelve el token del método con nombre en una clase de matriz.

System_CAPS_pubmethodGetConstructorToken(ConstructorInfo)

Devuelve el token utilizado para identificar el constructor especificado en este módulo.

System_CAPS_pubmethodGetConstructorToken(ConstructorInfo, IEnumerable<Type>)

Devuelve el token utilizado para identificar el constructor que tiene los atributos especificados y los tipos de parámetro en este módulo.

System_CAPS_pubmethodGetCustomAttributes(Boolean)

Devuelve todos los atributos personalizados que se aplicaron al ModuleBuilder actual.(Invalida Module.GetCustomAttributes(Boolean)).

System_CAPS_pubmethodGetCustomAttributes(Type, Boolean)

Devuelve todos los atributos personalizados que se han aplicado a la actual ModuleBuilder, y que se derivan de un tipo de atributo especificado.(Invalida Module.GetCustomAttributes(Type, Boolean)).

System_CAPS_pubmethodGetCustomAttributesData()

Devuelve información sobre los atributos que se aplicaron al ModuleBuilder, actual, expresados como objetos CustomAttributeData.(Invalida Module.GetCustomAttributesData()).

System_CAPS_pubmethodGetField(String)

Devuelve un campo que tiene el nombre especificado.(Heredado de Module).

System_CAPS_pubmethodGetField(String, BindingFlags)

Devuelve un campo de nivel de módulo, definido en la región .sdata del portable ejecutable (PE) archivo, que tiene el nombre especificado y los atributos de enlace.(Invalida Module.GetField(String, BindingFlags)).

System_CAPS_pubmethodGetFields()

Devuelve los campos globales definidos en el módulo.(Heredado de Module).

System_CAPS_pubmethodGetFields(BindingFlags)

Devuelve todos los campos definidos en la región .sdata del archivo portable ejecutable (PE) que coinciden con las marcas de enlace especificadas.(Invalida Module.GetFields(BindingFlags)).

System_CAPS_pubmethodGetFieldToken(FieldInfo)

Devuelve el token usado para identificar el campo especificado en este módulo.

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Invalida Module.GetHashCode()).

System_CAPS_pubmethodGetMethod(String)

Devuelve un método que tiene el nombre especificado.(Heredado de Module).

System_CAPS_pubmethodGetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Devuelve un método con el nombre especificado, información de enlace, convención de llamada y tipos de parámetros y modificadores.(Heredado de Module).

System_CAPS_pubmethodGetMethod(String, Type[])

Devuelve un método con los tipos de parámetro y nombre especificados.(Heredado de Module).

System_CAPS_protmethodGetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])

Devuelve el método de nivel de módulo que coincide con los criterios especificados.(Invalida Module.GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])).

System_CAPS_pubmethodGetMethods()

Devuelve los métodos globales definidos en el módulo.(Heredado de Module).

System_CAPS_pubmethodGetMethods(BindingFlags)

Devuelve todos los métodos que se han definido en el nivel de módulo actual ModuleBuilder, y que coinciden con las marcas de enlace especificadas.(Invalida Module.GetMethods(BindingFlags)).

System_CAPS_pubmethodGetMethodToken(MethodInfo)

Devuelve el token usado para identificar el método especificado en este módulo.

System_CAPS_pubmethodGetMethodToken(MethodInfo, IEnumerable<Type>)

Devuelve el token utilizado para identificar el método que tiene los atributos especificados y los tipos de parámetro en este módulo.

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Proporciona un ISerializable implementación para objetos serializados.(Heredado de Module).

System_CAPS_pubmethodGetPEKind(PortableExecutableKinds, ImageFileMachine)

Obtiene un par de valores que indican la naturaleza del código en un módulo y la plataforma de destino del módulo.(Invalida Module.GetPEKind(PortableExecutableKinds, ImageFileMachine)).

System_CAPS_pubmethodGetSignatureToken(Byte[], Int32)

Define un token para la firma que tiene la longitud de matriz y la firma del carácter especificado.

System_CAPS_pubmethodGetSignatureToken(SignatureHelper)

Define un token para la firma que está definida por el objeto SignatureHelper.

System_CAPS_pubmethodGetSignerCertificate()

Devuelve un X509Certificate correspondiente al certificado incluido en la firma Authenticode del ensamblado al que pertenece este módulo de objeto. Si el ensamblado no se ha firmado mediante Authenticode, null se devuelve.(Invalida Module.GetSignerCertificate()).

System_CAPS_pubmethodGetStringConstant(String)

Devuelve el token de la cadena especificada en el grupo de constantes del módulo.

System_CAPS_pubmethodGetSymWriter()

Devuelve el escritor de símbolos asociado a este módulo dinámico.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodGetType(String)

Obtiene el tipo con nombre definido en el módulo.(Invalida Module.GetType(String)).

System_CAPS_pubmethodGetType(String, Boolean)

Obtiene el tipo con nombre definido en el módulo, si lo desea omitir el caso del nombre de tipo.(Invalida Module.GetType(String, Boolean)).

System_CAPS_pubmethodGetType(String, Boolean, Boolean)

Obtiene el tipo con nombre definido en el módulo, si lo desea omitir el caso del nombre de tipo. Opcionalmente, produce una excepción si no se encuentra el tipo.(Invalida Module.GetType(String, Boolean, Boolean)).

System_CAPS_pubmethodGetTypes()

Devuelve todas las clases definidas en este módulo.(Invalida Module.GetTypes()).

System_CAPS_pubmethodGetTypeToken(String)

Devuelve el token utilizado para identificar el tipo con el nombre especificado.

System_CAPS_pubmethodGetTypeToken(Type)

Devuelve el token usado para identificar el tipo especificado en este módulo.

System_CAPS_pubmethodIsDefined(Type, Boolean)

Devuelve un valor que indica si el tipo de atributo especificado se ha aplicado a este módulo.(Invalida Module.IsDefined(Type, Boolean)).

System_CAPS_pubmethodIsResource()

Obtiene un valor que indica si el objeto es un recurso.(Invalida Module.IsResource()).

System_CAPS_pubmethodIsTransient()

Devuelve un valor que indica si este módulo dinámico es transitorio.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodResolveField(Int32)

Devuelve el campo identificado por el token de metadatos especificado.(Heredado de Module).

System_CAPS_pubmethodResolveField(Int32, Type[], Type[])

Devuelve el campo identificado por el token de metadatos especificado, en el contexto definido por los parámetros de tipo genérico especificado.(Invalida Module.ResolveField(Int32, Type[], Type[])).

System_CAPS_pubmethodResolveMember(Int32)

Devuelve el tipo o miembro identificado por el token de metadatos especificado.(Heredado de Module).

System_CAPS_pubmethodResolveMember(Int32, Type[], Type[])

Devuelve el tipo o miembro identificado por el token de metadatos especificado, en el contexto definido por los parámetros de tipo genérico especificado.(Invalida Module.ResolveMember(Int32, Type[], Type[])).

System_CAPS_pubmethodResolveMethod(Int32)

Devuelve el método o constructor identificado por el token de metadatos especificado.(Heredado de Module).

System_CAPS_pubmethodResolveMethod(Int32, Type[], Type[])

Devuelve el método o constructor identificado por el token de metadatos especificado, en el contexto definido por los parámetros de tipo genérico especificado.(Invalida Module.ResolveMethod(Int32, Type[], Type[])).

System_CAPS_pubmethodResolveSignature(Int32)

Devuelve el objeto binario de firma identificado por un token de metadatos.(Invalida Module.ResolveSignature(Int32)).

System_CAPS_pubmethodResolveString(Int32)

Devuelve la cadena identificada por el token de metadatos especificado.(Invalida Module.ResolveString(Int32)).

System_CAPS_pubmethodResolveType(Int32)

Devuelve el tipo identificado por el token de metadatos especificado.(Heredado de Module).

System_CAPS_pubmethodResolveType(Int32, Type[], Type[])

Devuelve el tipo identificado por el token de metadatos especificado, en el contexto definido por los parámetros de tipo genérico especificado.(Invalida Module.ResolveType(Int32, Type[], Type[])).

System_CAPS_pubmethodSetCustomAttribute(ConstructorInfo, Byte[])

Aplica un atributo personalizado a este módulo utilizando el objeto binario grande (BLOB) especificado que representa el atributo.

System_CAPS_pubmethodSetCustomAttribute(CustomAttributeBuilder)

Aplica un atributo personalizado a este módulo utilizando un generador de atributos personalizados.

System_CAPS_pubmethodSetSymCustomAttribute(String, Byte[])

Este método no hace nada.

System_CAPS_pubmethodSetUserEntryPoint(MethodInfo)

Establece el punto de entrada del usuario.

System_CAPS_pubmethodToString()

Devuelve el nombre del módulo.(Heredado de Module).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Module.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Module).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Module.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera la información de tipo de un objeto, que se puede usar después para obtener la información de tipo de una interfaz.(Heredado de Module).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Module.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Module).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Module.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Module).

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ModuleBuilder.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Para una descripción de este miembro, vea _ModuleBuilder.GetIDsOfNames.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ModuleBuilder.GetTypeInfo(UInt32, UInt32, IntPtr)

Para una descripción de este miembro, vea _ModuleBuilder.GetTypeInfo.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ModuleBuilder.GetTypeInfoCount(UInt32)

Para una descripción de este miembro, vea _ModuleBuilder.GetTypeInfoCount.

System_CAPS_pubinterfaceSystem_CAPS_privmethod_ModuleBuilder.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Para una descripción de este miembro, vea _ModuleBuilder.Invoke.

NombreDescripción
System_CAPS_pubmethodGetCustomAttribute(Type)

Sobrecargado. Recupera un atributo personalizado de un tipo especificado que se aplica a un módulo especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttribute<T>()

Sobrecargado. Recupera un atributo personalizado de un tipo especificado que se aplica a un módulo especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttributes()

Sobrecargado. Recupera una colección de atributos personalizados que se aplican a un módulo especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodGetCustomAttributes(Type)

Sobrecargado. Recupera una colección de atributos personalizados de un tipo especificado que se aplican a un módulo especificado.(Definido por CustomAttributeExtensions).

System_CAPS_pubmethodIsDefined(Type)

Sobrecargado. Indica si se aplican atributos personalizados de un tipo especificado a un módulo especificado.(Definido por CustomAttributeExtensions).

Para obtener una instancia de ModuleBuilder, utilice el AssemblyBuilder.DefineDynamicModule método.

El ejemplo de código siguiente muestra el uso de ModuleBuilder para crear un módulo dinámico. Tenga en cuenta que ModuleBuilder se crea llamando a DefineDynamicModule en AssemblyBuilder, en lugar de mediante un constructor.

using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Security.Permissions;

public class CodeGenerator
{
   AssemblyBuilder myAssemblyBuilder;
   public CodeGenerator()
   {
      // Get the current application domain for the current thread.
      AppDomain myCurrentDomain = AppDomain.CurrentDomain;
      AssemblyName myAssemblyName = new AssemblyName();
      myAssemblyName.Name = "TempAssembly";

      // Define a dynamic assembly in the current application domain.
      myAssemblyBuilder = myCurrentDomain.DefineDynamicAssembly
                     (myAssemblyName, AssemblyBuilderAccess.Run);

      // Define a dynamic module in this assembly.
      ModuleBuilder myModuleBuilder = myAssemblyBuilder.
                                      DefineDynamicModule("TempModule");

      // Define a runtime class with specified name and attributes.
      TypeBuilder myTypeBuilder = myModuleBuilder.DefineType
                                       ("TempClass",TypeAttributes.Public);

      // Add 'Greeting' field to the class, with the specified attribute and type.
      FieldBuilder greetingField = myTypeBuilder.DefineField("Greeting", 
                                                            typeof(String), FieldAttributes.Public);
      Type[] myMethodArgs = { typeof(String) };

      // Add 'MyMethod' method to the class, with the specified attribute and signature.
      MethodBuilder myMethod = myTypeBuilder.DefineMethod("MyMethod",
         MethodAttributes.Public, CallingConventions.Standard, null,myMethodArgs);

      ILGenerator methodIL = myMethod.GetILGenerator();
      methodIL.EmitWriteLine("In the method...");
      methodIL.Emit(OpCodes.Ldarg_0);
      methodIL.Emit(OpCodes.Ldarg_1);
      methodIL.Emit(OpCodes.Stfld, greetingField);
      methodIL.Emit(OpCodes.Ret);
      myTypeBuilder.CreateType();
   }
   public AssemblyBuilder MyAssembly
   {
      get
      {
         return this.myAssemblyBuilder;
      }
   }
}
public class TestClass
{
   [PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")]
   public static void Main()
   {
      CodeGenerator myCodeGenerator = new CodeGenerator();
      // Get the assembly builder for 'myCodeGenerator' object.
      AssemblyBuilder myAssemblyBuilder = myCodeGenerator.MyAssembly;
      // Get the module builder for the above assembly builder object .
      ModuleBuilder myModuleBuilder = myAssemblyBuilder.
                                                           GetDynamicModule("TempModule");
      Console.WriteLine("The fully qualified name and path to this "
                               + "module is :" +myModuleBuilder.FullyQualifiedName);
      Type myType = myModuleBuilder.GetType("TempClass");
      MethodInfo myMethodInfo = 
                                                myType.GetMethod("MyMethod");
       // Get the token used to identify the method within this module.
      MethodToken myMethodToken = 
                        myModuleBuilder.GetMethodToken(myMethodInfo);
      Console.WriteLine("Token used to identify the method of 'myType'"
                    + " within the module is {0:x}",myMethodToken.Token);
     object[] args={"Hello."};
     object myObject = Activator.CreateInstance(myType,null,null);
     myMethodInfo.Invoke(myObject,args);
   }
}

.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: