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

Método AssemblyBuilder.DefineDynamicModule (String, String)

 

Publicado: octubre de 2016

Define un módulo dinámico con persistencia con el nombre especificado que se guardará en el archivo especificado. No se emitirá información de símbolos.

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

public ModuleBuilder DefineDynamicModule(
	string name,
	string fileName
)

Parámetros

name
Type: System.String

Nombre del módulo dinámico. Debe tener menos de 260 caracteres.

fileName
Type: System.String

Nombre del archivo en el que se debe guardar el módulo dinámico.

Valor devuelto

Type: System.Reflection.Emit.ModuleBuilder

Objeto ModuleBuilder que representa el módulo dinámico definido.

Exception Condition
ArgumentNullException

El valor de name o fileName es null.

ArgumentException

La longitud de name o fileName es cero.

O bien

La longitud de name es mayor o igual que 260.

O bien

fileName contiene una especificación de ruta de acceso (por ejemplo, un componente de directorio).

O bien

Hay un conflicto con el nombre de otro archivo que pertenece a este ensamblado.

InvalidOperationException

Este ensamblado se ha guardado previamente.

NotSupportedException

Se llamó a este ensamblado en un ensamblado dinámico con el atributo Run.

SecurityException

El llamador no dispone del permiso requerido.

ExecutionEngineException

No se puede cargar el ensamblado para el sistema de escritura de símbolos predeterminado.

O bien

No se encuentra el tipo que implementa la interfaz del sistema de escritura de símbolos predeterminado.

To define a persistable dynamic module, this assembly needs to be created with the F:System.Reflection.Emit.AssemblyBuilderAccess.Save or the F:System.Reflection.Emit.AssemblyBuilderAccess.RunAndSave attribute.

If you want the module to contain the assembly manifest, name should be the same as the name of the assembly (that is, the P:System.Reflection.AssemblyName.Name property of the T:System.Reflection.AssemblyName used to create the dynamic assembly) and fileName should be the same as the filename you specify when you save the assembly.

In an assembly with only one module, that module should contain the assembly manifest.

System_CAPS_noteNota

To suppress optimizations when debugging dynamic modules, apply the T:System.Diagnostics.DebuggableAttribute attribute to the dynamic assembly before calling Overload:System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule. Create an instance of T:System.Diagnostics.DebuggableAttribute with the F:System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations flag and apply it using the Overload:System.Reflection.Emit.AssemblyBuilder.SetCustomAttribute method. The attribute must be applied to the dynamic assembly. It has no effect if applied to the module.

System_CAPS_noteNota

Starting with the net_v20sp1_long, this member no longer requires T:System.Security.Permissions.ReflectionPermission with the F:System.Security.Permissions.ReflectionPermissionFlag.ReflectionEmit flag. (See Security Issues in Reflection Emit.) To use this functionality, your application should target the net_v35_long or later.

[Visual Basic, C#]

The code example below demonstrates how to create a persistent dynamic module using DefineDynamicModule.

AppDomain myAppDomain = Thread.GetDomain(); 
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyAssembly";
AssemblyBuilder myAsmBuilder = myAppDomain.DefineDynamicAssembly(
			myAsmName,
			AssemblyBuilderAccess.Run);
// Create a dynamic module that can be saved as the specified DLL name.
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule3",
					    "MyModule3.dll");

ReflectionPermission

when invoked late-bound through mechanisms such as M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]). Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.MemberAccess.

FileIOPermission

Write=true or Append=true is needed to save the module

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: