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 AppDomain.Load (AssemblyName)

 

Publicado: octubre de 2016

Carga un Assembly a partir de su AssemblyName.

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

public Assembly Load(
	AssemblyName assemblyRef
)

Parámetros

assemblyRef
Type: System.Reflection.AssemblyName

Objeto que describe el ensamblado que se va a cargar.

Valor devuelto

Type: System.Reflection.Assembly

Ensamblado cargado.

Exception Condition
ArgumentNullException

El valor de assemblyRef es null.

FileNotFoundException

No se ha encontrado assemblyRef.

BadImageFormatException

assemblyRef no es un ensamblado válido.

-o-

La versión 2.0 u otra posterior de Common Language Runtime está cargada actualmente y assemblyRef se compiló con una versión posterior.

AppDomainUnloadedException

La operación se intenta en un dominio de aplicación descargado.

FileLoadException

Se cargó un ensamblado o módulo dos veces con dos evidencias diferentes.

Este método debe utilizarse solo para cargar un ensamblado en el dominio de aplicación actual. Este método se proporciona como una comodidad para los llamadores de interoperabilidad que no se pueden llamar el método estático Assembly.Load método. Para cargar ensamblados en otros dominios de aplicación, utilice un método como CreateInstanceAndUnwrap.

Si ya está cargada una versión del ensamblado solicitado, este método devuelve el ensamblado cargado, incluso si se solicita una versión diferente.

Proporcionar un nombre de ensamblado parcial para assemblyRef no se recomienda. (Un nombre parcial omite uno o varios de la referencia cultural, versión o token de clave pública. Para las sobrecargas que toman una cadena en lugar de un AssemblyName objeto, "MyAssembly, Version = 1.0.0.0" es un ejemplo de un nombre parcial y "MyAssembly, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 18ab3442da84b47" es un ejemplo de un nombre completo.) Uso de nombres parciales tiene un efecto negativo en el rendimiento. Además, un nombre de ensamblado parcial puede cargar un ensamblado desde la caché global de ensamblados sólo si hay una copia exacta del ensamblado en el directorio de base de la aplicación (BaseDirectory o AppDomainSetup.ApplicationBase).

Si la actual AppDomain objeto representa el dominio de aplicación Ay el Load método se llama desde el dominio de aplicación B, el ensamblado se carga en ambos dominios de aplicación. Por ejemplo, el siguiente código carga MyAssembly en el nuevo dominio de aplicación ChildDomain y también en el dominio de aplicación donde se ejecuta el código:

AppDomain ad = AppDomain.CreateDomain("ChildDomain");
ad.Load("MyAssembly");

El ensamblado se carga en ambos dominios porque Assembly no se deriva de MarshalByRefObjecty, por tanto, el valor devuelto de la Load no se pueden calcular las referencias de método. En su lugar, common language runtime intenta cargar el ensamblado en el dominio de aplicación que realiza la llamada. Los ensamblados que se cargan en los dos dominios de aplicación pueden ser diferentes si la configuración de ruta de acceso para los dos dominios de aplicación es diferente.

System_CAPS_noteNota

Si tanto la AssemblyName.Name propiedad y el AssemblyName.CodeBase propiedad se establece, el primer intento para cargar el ensamblado utiliza el nombre para mostrar (incluida la versión, referencia cultural y así sucesivamente, tal como lo devuelve el Assembly.FullName propiedad). Si no se encuentra el archivo, la CodeBase propiedad se utiliza para buscar el ensamblado. Si se encuentra el ensamblado mediante CodeBase, el nombre para mostrar se compara con el ensamblado. Si se produce un error en la búsqueda de coincidencias, un FileLoadException se produce.

FileIOPermission

for access to read from a file or directory, and for access to the information in the path itself. Associated enumerations: F:System.Security.Permissions.FileIOPermissionAccess.Read, F:System.Security.Permissions.FileIOPermissionAccess.PathDiscovery.

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: