MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.