Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

AppDomain.DefineDynamicAssembly (Método) (AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>)

Nota: esta API ya está obsoleta. La alternativa no obsoleta es DefineDynamicAssembly.

Define un ensamblado dinámico con el nombre especificado, el modo de acceso, el directorio de almacenamiento, la evidencia, las solicitudes de permiso, la opción de sincronización y los atributos personalizados.

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

[ObsoleteAttribute("Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information.")]
public AssemblyBuilder DefineDynamicAssembly(
	AssemblyName name,
	AssemblyBuilderAccess access,
	string dir,
	Evidence evidence,
	PermissionSet requiredPermissions,
	PermissionSet optionalPermissions,
	PermissionSet refusedPermissions,
	bool isSynchronized,
	IEnumerable<CustomAttributeBuilder> assemblyAttributes
)

Parámetros

name
Tipo: System.Reflection.AssemblyName
Identidad única del ensamblado dinámico.
access
Tipo: System.Reflection.Emit.AssemblyBuilderAccess
Modo de acceso al ensamblado dinámico.
dir
Tipo: System.String
Nombre del directorio donde se guardará el ensamblado dinámico. Si dir es null, se utiliza el directorio actual.
evidence
Tipo: System.Security.Policy.Evidence
Evidencia suministrada para el ensamblado dinámico. La evidencia se utiliza sin modificaciones como conjunto final de evidencia para la resolución de directivas.
requiredPermissions
Tipo: System.Security.PermissionSet
Solicitud de permisos requeridos.
optionalPermissions
Tipo: System.Security.PermissionSet
Solicitud de permisos opcionales.
refusedPermissions
Tipo: System.Security.PermissionSet
Solicitud de permisos rechazados.
isSynchronized
Tipo: System.Boolean
true para sincronizar la creación de módulos, tipos y miembros en el ensamblado dinámico; en caso contrario, false.
assemblyAttributes
Tipo: System.Collections.Generic.IEnumerable<CustomAttributeBuilder>
Lista enumerable de atributos que se va a aplicarse al ensamblado o null si no hay ningún atributo.

Valor devuelto

Tipo: System.Reflection.Emit.AssemblyBuilder
Un ensamblado dinámico con el nombre y las características especificados.

ExcepciónCondición
ArgumentNullException

name es null.

ArgumentException

La propiedad Name de name es null.

O bien

La propiedad Name de name empieza con un espacio en blanco o contiene una barra diagonal o una barra diagonal inversa.

AppDomainUnloadedException

Se ha intentado realizar la operación en un dominio de aplicación descargado.

Utilice esta sobrecarga del método para especificar atributos que no funcionan correctamente a menos que se apliquen cuando se crea un ensamblado dinámico. Por ejemplo, los atributos de seguridad como SecurityTransparentAttribute y SecurityCriticalAttribute no funcionan correctamente si se agregan una vez creado un ensamblado dinámico.

Las solicitudes de permisos especificadas para los parámetros requiredPermissions, optionalPermissions y refusedPermissions sólo se usan si también se proporciona el parámetro evidence, o si se guarda el ensamblado dinámico y se vuelve a cargar en memoria.

NotaNota

Cuando se desarrolla código que emite ensamblados dinámicos, se recomienda incluir el marcador SecurityPermissionFlag.SkipVerification en el parámetro refusedPermissions. La inclusión de este marcador asegura que se comprobará el lenguaje intermedio de Microsoft (MSIL). Esta técnica detectará la generación involuntaria de código no comprobable, que de lo contrario es muy difícil detectar. Una limitación de esta técnica es que también se produce una excepción SecurityException cuando se utiliza con código que requiere plena confianza.

A la hora de definir un Assembly dinámico, sólo los llamadores de plena confianza pueden suministrar evidencia. El motor en tiempo de ejecución asigna Evidence mediante la directiva de seguridad para determinar los permisos concedidos. Los llamadores de confianza parcial deben suministrar null para el parámetro evidence. Si evidence es null, el motor en tiempo de ejecución copia los conjuntos de permisos (es decir, los conjuntos actuales de permisos concedidos y rechazados) del ensamblado del llamador en el ensamblado dinámico que se ha definido, y marca la directiva como resuelta.

Si el ensamblado dinámico se guarda en el disco, las operaciones de carga posteriores obtendrán las concesiones que se basan en las directivas asociadas a la ubicación en la que se guardó el ensamblado dinámico.

Si isSynchronized es true, se sincronizarán los métodos siguientes del objeto AssemblyBuilder resultante: DefineDynamicModule, DefineResource, AddResourceFile, GetDynamicModule, SetEntryPoint y Save. Si se llama a dos de estos métodos en subprocesos diferentes, uno se bloqueará hasta que el otro finalice.

NotaNota

En las versiones 1.0, 1.1 y 2.0 de .NET Framework, los atributos de seguridad declarativa aplicados a un ensamblado dinámico mediante los parámetros requiredPermissions, optionalPermissions y refusedPermissions se almacenan en el formato de metadatos XML antiguo. Para obtener más información sobre estos atributos, vea Emitir atributos de seguridad declarativa.

Esta sobrecarga del método aparece por primera vez en .NET Framework 3.5.

.NET Framework

Compatible con: 3.5 SP1, 3.0 SP1, 2.0 SP1
Obsoleto (advertencia del compilador) en 4.5.2
Obsoleto (advertencia del compilador) en 4.5.1
Obsoleto (advertencia del compilador) en 4.5
Obsoleto (advertencia del compilador) en 4

.NET Framework Client Profile

Compatible con: 3.5 SP1
Obsoleto (advertencia del compilador) en 4

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft