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)

 

Publicado: octubre de 2016

Define un módulo dinámico transitorio con nombre en este ensamblado.

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

public ModuleBuilder DefineDynamicModule(
	string name
)

Parámetros

name
Type: System.String

Nombre del módulo dinámico. Debe ser inferior a 260 caracteres de longitud.

Valor devuelto

Type: System.Reflection.Emit.ModuleBuilder

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

Exception Condition
ArgumentException

name comienza con un espacio en blanco.

O bien

La longitud de name es cero.

O bien

La longitud de name es mayor o igual que 260.

ArgumentNullException

El valor de name es null.

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.

It is an error to define multiple dynamic modules with the same name in an assembly.

The defined dynamic module is transient. The dynamic module is not saved, even if the parent dynamic assembly was created with F:System.Reflection.Emit.AssemblyBuilderAccess.RunAndSave.

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 transient dynamic module using DefineDynamicModule.

AppDomain myAppDomain = Thread.GetDomain(); 
AssemblyName myAsmName = new AssemblyName();
myAsmName.Name = "MyAssembly";
AssemblyBuilder myAsmBuilder = myAppDomain.DefineDynamicAssembly(
			myAsmName,
			AssemblyBuilderAccess.Run);

// Create a transient dynamic module. Since no DLL name is specified with
// this constructor, it can not be saved. 
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule1");

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.

.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Volver al principio
Mostrar: