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, Boolean)

 

Publicado: octubre de 2016

Define un módulo dinámico transitorio con nombre en este ensamblado y especifica si se debe emitir información de símbolos.

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

public ModuleBuilder DefineDynamicModule(
	string name,
	bool emitSymbolInfo
)

Parámetros

name
Type: System.String

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

emitSymbolInfo
Type: System.Boolean

true si se va a emitir información de símbolos; si no, false.

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.

ExecutionEngineException

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

O bien

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

SecurityException

El llamador no dispone del permiso requerido.

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

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, suppressing symbol information.

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. By specifying the second parameter
// of the constructor as false, we can suppress the emission of symbol info.
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule("MyModule2",
						false);

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: