Compartir a través de


MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Método

Definición

Devuelve un ensamblado a partir de un nombre de ensamblado determinado.

public:
 abstract System::Reflection::Assembly ^ Resolve(System::Reflection::MetadataLoadContext ^ context, System::Reflection::AssemblyName ^ assemblyName);
public abstract System.Reflection.Assembly? Resolve (System.Reflection.MetadataLoadContext context, System.Reflection.AssemblyName assemblyName);
abstract member Resolve : System.Reflection.MetadataLoadContext * System.Reflection.AssemblyName -> System.Reflection.Assembly
Public MustOverride Function Resolve (context As MetadataLoadContext, assemblyName As AssemblyName) As Assembly

Parámetros

context
MetadataLoadContext

Objeto de contexto de carga de metadatos que representa el universo cerrado de objetos Type cargados solo para fines de inspección.

assemblyName
AssemblyName

Nombre del ensamblado.

Devoluciones

Ensamblado para el assemblyName proporcionado.

Comentarios

El enlace de un nombre de ensamblado a un ensamblado se produce cuando LoadFromAssemblyName se llama a o cuando un tipo de un ensamblado tiene una dependencia en otro ensamblado. El controlador que invalida Resolve debe usar MetadataLoadContext.LoadFromStreamo MetadataLoadContext.LoadFromAssemblyPathMetadataLoadContext.LoadFromByteArray para cargar el ensamblado solicitado y devolverlo.

Para indicar el error al encontrar un ensamblado, el controlador debe devolver null en lugar de iniciar una excepción. Al devolver null se confirma el error para que se produzca un error en los intentos futuros de cargar ese nombre sin volver a invocar el controlador.

Si el controlador produce una excepción, la excepción se pasará a la aplicación que invocó la operación que desencadenó el enlace. no MetadataLoadContext lo detectará y no se producirá ningún enlace.

Por lo general, no se llamará al controlador más de una vez para el mismo nombre, a menos que dos subprocesos corra para cargar el mismo ensamblado. Incluso en ese caso, un resultado ganará y se enlazará atómicamente al nombre.

El MetadataLoadContext objeto realiza intencionadamente ninguna coincidencia de ref-def en el ensamblado devuelto, ya que lo que constituye una coincidencia ref-def es una directiva. También es el tipo de restricción arbitraria que MetadataLoadContext se esfuerza por evitar.

No MetadataLoadContext puede consumir ensamblados de otros contextos de carga de metadatos u otros proveedores de tipos (como el propio sistema de reflexión del entorno de ejecución subyacente). Si un controlador devuelve este ensamblado, MetadataLoadContext inicia un FileLoadException.

Se aplica a